如何设计这个mysql数据库

如何设计这个mysql数据库,mysql,database,database-design,Mysql,Database,Database Design,有200万用户 每个用户有4个表。4个表中的数据不会被追加,将保持不变 每个用户表的结构将是相同的 为了在mysql中存储这些用户的数据,我必须设计一个数据库 我是否需要创建200万个数据库,每个数据库有4个表 谢谢你的帮助 这四张桌子是最新的 用户1个月的来电记录 增加用户短信记录1个月 用户1个月的外呼记录 用户1个月的外出短信记录 调用表将具有以下结构 日期时间编号持续时间费用 传入的sms将具有以下结构 日期时间编号 传出的sms将具有以下结构 日期时间数字费用您只需要一个用户表,表1、

有200万用户 每个用户有4个表。4个表中的数据不会被追加,将保持不变

每个用户表的结构将是相同的

为了在mysql中存储这些用户的数据,我必须设计一个数据库

我是否需要创建200万个数据库,每个数据库有4个表

谢谢你的帮助

这四张桌子是最新的

  • 用户1个月的来电记录
  • 增加用户短信记录1个月
  • 用户1个月的外呼记录
  • 用户1个月的外出短信记录
  • 调用表将具有以下结构

    日期时间编号持续时间费用

    传入的sms将具有以下结构

    日期时间编号

    传出的sms将具有以下结构


    日期时间数字费用

    您只需要一个用户表,表1、表2、表3、表4。然后,当您需要在表1中输入数据时,只需在表1中包含用户id即可

    TABLE 1                              USERS
    
    ID   usersID     amount   quantity   ID   Name
    1       1           200      2        1   John
    2       1           400      3      
    
    然后可以通过表1使用内部连接进行连接。usersID=users.ID 所有表都必须具有usersID(具有ID的users表除外)才能连接它们


    希望你明白这一点

    不,你不需要200万个数据库,每个数据库有4个表。您只需要1个数据库、4个表和每个用户的唯一用户ID

    比如:

    users table:
    | user_id (primary key) | username |
    
    address table
    | user_id (foreign key) | address  |
    
    whatever table
    | user_id (foreign key) | whatever |
    

    我想知道为什么每个用户需要4张表?希望您理解我在这里要传达的基本内容。

    大多数数据库服务器(和文件系统)不会处理需要这么多独立数据库的实例。我猜您实际需要的是四个表,每个表包含每个用户的一行。这是一个完全合理的要求。

    这是一个我称之为元数据Tribbles的SQL反模式。它们看起来可爱、友好,但很快就会失控

    一旦您听到以“每个…我有一个相同的表”或“每个…我有一个相同的列”开头的短语,那么您可能有元数据tribble

    首先,您应该创建一个包含四个表的数据库,并为四个表中的每个表添加一个
    user\u id
    属性


    在某些例外情况下,您可能希望将每个用户拆分为单独的数据库,但它们都是例外。除非你知道自己在做什么,并且能够证明这是必要的,否则不要去那里。

    不,你不需要200万个数据库

    实际上,4个表需要200万个实例

    当然,您应该设计一个关系数据库,使每个表都有一个用于其他表的关系属性。

    考虑这个例子——借用数据仓库——它是一个普通的Kimball星形。非常简化的模型,但这四个表涵盖了您描述的需求,以及更多。


    这4个表中的“数据”到底是什么?请详细说明。哦,天哪,不。为什么你认为每个用户需要四张桌子?我们需要关于您的要求的更多详细信息。wtf,您有更多详细信息吗?请查看问题中的编辑。每个人都喜欢“元数据Tribbles”这个名称。这本身就值得投一票。