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

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

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

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

任何帮助表示赞赏

这 4 个表分别是

  1. 用户1个月的来电记录
  2. 记录用户1个月的短信记录
  3. 用户1个月的去电记录
  4. 用户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 个表?希望您能理解我在这里试图传达的基本知识。

考虑这个例子——借用数据仓库——它是一个普通的金博尔星。非常简化的模型,但这四个表涵盖了您所描述的需求等等。

telecom_model_01

你只需要一张用户表,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 万个实例。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top