这种情况的最佳数据库结构是什么?

时间:2014-01-20 20:32:08

标签: database django postgresql

我正在用这些表格写一个股票经理:

  • 收获
  • 买卖
  • 客户和制作人
  • sale_item和purchase_item
  • 和其他人

我想知道组织表格的最佳方法是什么。

我的主要问题是如何创建salespurchase,因为它们的字段几乎相同,但customerproducer完全不同。

我想到了两个选择。第一个是salepurchasesale_itempurchase_item中的重复字段。第二个是创建一个名为order的表和一个用于存储类型(salepurchase)的列,对sale_itempurchase_item执行相同的操作,并创建一个名为person的表,其中包含名为customerproducer的其他表继承person

最好的方法是什么?

我正在使用Django和Postgresql。

2 个答案:

答案 0 :(得分:1)

您应该将销售和购买分成两个单独的表(以及sale_item和purchase_item。)即使它们有重复的列 - 现在 - 它们代表不同的概念。

将来,很容易想象这些概念中的任何一个都可能以某种方式发生变化,以便基础表具有所有相同的列。

拥有两组独立的表也可以更容易查询。

答案 1 :(得分:0)

根据您的实体规范化表格是正确的方法。

此外,我会考虑您希望这些实体在同一列表视图中合并在一起的可能性。

查看您所指的实体,我认为sale_item和purchase_item很可能可以互换使用,所以我会把它放在同一个表中。