2014-01-20 148 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很有可能互换使用,所以我会把它放在同一张表中。

相关问题