2014-03-07 169 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