2009-11-18 96 views
3

有200万用户 每个用户有4个表。 4个表格中的数据不会被附加,并且将保持修复。如何设计这个mysql数据库

每个用户表的结构都是一样的。

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

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

任何帮助赞赏

4个表是用户的

  1. 来电记录1个月
  2. incming用户的短信记录1个月
  3. 拨出电话记录的用户持续1个月
  4. 用户离开的短信记录1个月

呼叫表将具有以下结构

日期时间数的持续时间的电荷

所述接收到的SMS将具有以下结构

日期时间数

传出SMS将具有以下结构

日期时间号码收费

+0

什么 “数据” 究竟是在4个表?请详细说明。 – Asaph 2009-11-18 05:43:45

+1

哦,好主没有。你为什么认为每个用户需要有四张桌子?我们需要更多关于您的要求的细节。 – 2009-11-18 05:44:43

+0

wtf,你有更多的细节吗? – 2009-11-18 05:45:52

回答

9

这是一个SQL反模式,我将其称为元数据Tribbles。他们看起来很可爱又友善,但很快他们就失去了控制。

只要你听到开始的语句“我有一个相同的表格......”或“我有一个相同的列...”,那么你可能有元数据Tribbles。

您应该首先制作一个带有四个表的数据库,并将user_id属性添加到四个表中的每一个表中。

有一些例外情况,您想要将每个用户分成不同的数据库,但他们是例外。除非你知道你在做什么,并且可以证明这是必要的,否则不要去那里。

+0

我喜欢“Metadata Tribbles”的名称。这本身就值得赞扬。 – 2009-11-18 08:09:26

0

您只需要一张表格给用户,table1,table2,table3,table4。那么当你需要输入数据到Table 1只包括users_id到Table

TABLE 1        USERS 

ID usersID  amount quantity ID Name 
1  1   200  2  1 John 
2  1   400  3  

您可以连接,然后使用INNER其table1.usersID = users.ID 所有表连接必须usersID(期望用户表,有ID)来连接它们

希望你明白了吧

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个表?希望你能理解我在这里传达的内容。

4

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

0

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

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

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

1

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

telecom_model_01