2014-03-07 128 views
1

我正在设计一个数据库,其中包含客户和company_transaction表,其中公司在部门中进行了分类,并且每个部门都有其自己的日常客户域。Mysql数据库设计

例如,A部门每天处理100个客户,如果有50个这样的部门,那么记录将是每天50 * 100 = 5000和每周35000。

现在我很困惑是否把所有部门的记录单桌下,就像

tbl_dept_transactions:

---------- ------------- ----------- 
dept_id  cust_id  bill 
---------- ------------ ----------- 
d1    c23  34780 
d2    c34  45000 
       . 
       . 
       . 

或维持一个差异表中的每个dept..like管理事务自己的桌子下一个部门的,只是想,

tbl_dept1_transactions:

---------- ---------- 
cust_id  bill 
---------- ---------- 
c45   56870 
c56   56890 
c34   32456 

并且该部门还在继续添加数据,并且数据按照我告诉u的更高速率添加,如果将添加更多部门,则会在一周内记录超过35000条记录。

什么是最好的选择?任何帮助,将不胜感激。

+1

您可能需要建立一个表中的每个部门划分,1.8万条记录一年可能是很多为一个表。 – Chitowns24

+0

你能告诉我们'公司'和'客户'之间的区别吗? – naota

回答

0

我每个月都会动态创建一个新表,并在月份后面加上它的名字。

如:tbl_dept_transactions_2014_03

创建每个部门的表似乎是一个错误的好主意,因为迟早会被重载为好。

为了维护查询,你可以定义一个全局常量与当前的表名和在查询中使用它,例如:define('TRANSACTIONS_TABLE','tbl_dep_transaction_'.date('Y_m'));

关于5年后创建的表,这不是很重要的,如果不是为数据存储空间,但如果你希望你可以备份给定年份的所有表,并从MySQL服务器中删除它们。

+0

如果我们每月创建一个表,它将在数据库中创建多少个表,例如5年,如何维护相同的查询。 –

+0

每月创建一个新表会不会长时间超载数据库?还有多少没有。的表可能会在MySQL数据库中? – Divyang

+0

它不会超载数据库没有。实际上,我会从一开始就直接创建10年的表格,这样系统就位(并且在10年内提醒:D)我认为数据库中表格的数量没有限制。 –

0

你得表cust_id->bill这将有基于时间和表dept_id->cust_id