如何设计这个mysql数据库
-
20-09-2019 - |
题
每个用户有200万用户有4个表。4 个表中的数据不会被追加,并将保持不变。
每个用户表的结构将相同。
为了将这些用户的数据存储在 mysql 中,我必须设计一个数据库。
我需要创建 200 万个数据库,每个数据库有 4 个表吗?
任何帮助表示赞赏
这 4 个表分别是
- 用户1个月的来电记录
- 记录用户1个月的短信记录
- 用户1个月的去电记录
- 用户1个月的外发短信记录
调用表将具有以下结构
日期时间号码持续时间费用
传入的短信将具有以下结构
日期时间数字
传出的短信将具有以下结构
日期时间号码费用
解决方案
这是我称之为的 SQL 反模式 元数据小块。 它们看起来可爱又友善,但很快它们就会失去控制地繁殖。
一旦您听到以“我有一个相同的表每个...”或“我有一个相同的列每个...”开头的短语,那么您可能已经有了元数据 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 = user.id.id所有表都必须具有usersid(期望具有ID的用户表)才能连接它们
希望你能明白要点
不,您不需要 200 万个数据库!
实际上,4 个表需要 200 万个实例。
当然,您应该设计一个关系数据库,使得每个表都具有其他表的关系属性。