有200万用户 每个用户有4个表。 4个表中的数据不会被追加,并将继续修复。
每个用户表的结构都是一样的。
要将这些用户的数据存储在mysql中,我必须设计一个数据库。
我是否需要创建200万个数据库,每个数据库有4个表?
任何帮助表示赞赏
4个表是
调用表将具有以下结构
日期时间号码持续时间费用
传入的短信将具有以下结构
日期时间编号
传出的短信将具有以下结构
日期时间编号费用
答案 0 :(得分:9)
这是一个SQL反模式,我称之为元数据Tribbles。它们看起来很可爱和友好,但很快就会失控。
一旦你听到“每个......我有一个相同的表”或“每个......我有一个相同的列”的短语,那么你可能有元数据Tribbles。
您应该首先创建一个包含四个表的数据库,然后在四个表中为每个表添加user_id
属性。
在某些例外情况下,您希望为每个用户拆分为单独的数据库,但它们是例外。除非你知道自己在做什么,否则不要去那里,并证明这是必要的。
答案 1 :(得分:4)
大多数数据库服务器(和文件系统)都不会处理需要许多单独数据库的实例。我猜你实际需要的是四个表,每个表包含每个用户的一行。这是一个完全合理的要求。
答案 2 :(得分:3)
不,您不需要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个表?希望你能理解我在这里传达的基本知识。
答案 3 :(得分:1)
答案 4 :(得分:0)
您只需要一个用户表table1,table2,table3,table4。然后,当您需要向table1输入数据时,只需将users_id包含到table1
TABLE 1 USERS
ID usersID amount quantity ID Name
1 1 200 2 1 John
2 1 400 3
您可以使用INNER JOIN通过其table1.usersID = users.ID进行连接 所有表必须具有usersID(期望具有ID的用户表)才能连接它们
希望你明白这一点
答案 5 :(得分:0)
不,你不需要200万个数据库!
实际上你需要为4个表提供200万个实例。
当然,您应该设计一个关系数据库,以便每个表都有其他表的关系属性。