2014-01-20 236 views
0

我正在寫一個股票經理,這些表:這種情況下最好的數據庫結構是什麼?

  • 收穫
  • 買賣
  • 客戶和製片人
  • sale_item和purchase_item
  • 和其他

我想知道什麼是組織表格的最佳方式。

我的主要問題是如何創建salespurchase,因爲他們有幾乎相同的字段,但customerproducer是完全不同的。

我想到了兩種選擇。第一個是salepurchasesale_itempurchase_item中的重複字段。第二個是創建一個名爲order和一列以存儲類型(salepurchase)表中,執行與相同和sale_itempurchase_item,並創建一個名爲person與名爲customer繼承person其它表和producer表。

什麼是最好的方法?

我正在使用Django和Postgresql。

回答

1

您應該將銷售和購買分爲兩個單獨的表(即sale_item和purchase_item)。即使它們有重複的列 - 目前 - 它們代表不同的概念。

未來,很容易想象這些概念中的任何一個都會以某種方式發生變化,從而使底層表格而不是具有所有相同的列。

擁有兩組獨立的表格也使查詢更容易。

+0

我幾乎用完了所有的提示。我只是用同樣的Django模型與@johnbarr的代表'sale_item'和'purchase_item'的提示混合在一起,但數據庫中有兩個不同的表。 –

0

根據您的實體標準化表是正確的方法。

此外,我會考慮您希望這些實體在相同列表視圖中一起呈現,合併的概率。

看着你指的實體,我認爲sale_item和purchase_item很有可能互換使用,所以我會把它放在同一張表中。

相關問題