[英]how to design this mysql database
有200万用户,每个用户有4个表。 4个表中的数据不会被追加,并将继续修复。
每个用户表的结构都是一样的。
要将这些用户的数据存储在mysql中,我必须设计一个数据库。
我需要创建200万个数据库,每个数据库有4个表吗?
任何帮助赞赏
4个表是
调用表将具有以下结构
日期时间编号期限费用
传入的短信将具有以下结构
日期时间编号
传出的短信将具有以下结构
日期时间编号费用
这是一个SQL反模式,我称之为Metadata Tribbles。 他们看起来很可爱和友好,但很快就会失控。
一旦你听到“每个......我有一个相同的表”或“每个......我有一个相同的列”的短语,那么你可能有元数据Tribbles。
您应该首先创建一个包含四个表的数据库,然后将user_id
属性添加到四个表中的每个表中。
在某些例外情况下,您希望将每个用户拆分为单独的数据库,但它们是例外情况 。 除非你知道自己在做什么,否则不要去那里,并且可以证明这是必要的。
大多数数据库服务器(和文件系统)都不会处理需要许多单独数据库的实例。 我猜你实际需要的是四个表,每个表包含每个用户的一行。 这是一个完全合理的要求。
不,您不需要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个表? 希望你能理解我在这里传达的基本知识。
你只需要一个用户表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
您可以通过其table1.usersID = users.ID使用INNER JOIN进行连接。所有表必须具有usersID(期望具有ID的users表)才能连接它们
希望你明白这一点
不,你不需要200万个数据库!
实际上,4个表实际上需要200万个实例。
当然,您应该设计一个关系数据库,以便每个表都具有其他表的关系属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.