单表中的发票和票据?

时间:2010-02-20 21:45:49

标签: c# .net sql-server

如果我有账单(来自供应商)和发票(给客户),最好将它们分开(在两个表中)或单个表中吗?

供应商/客户怎么样?

这些都是关系继承问题,你能否给我一些关于此的最佳实践?

4 个答案:

答案 0 :(得分:2)

在我看来,收到的账单和发票都是不同的东西:

  • 外发发票将包含与您的产品表匹配的订单项
  • 收到的账单将有一个非常正式的审批流程,涉及经理,财务和会计师
  • 传入帐单上的“发件人”是您的合作伙伴,但在发票上,合作伙伴的名称是“收件人”

不同的实体应该拥有自己的表。如果它们具有公共属性,则可以将它们存储在Document表中,并在该表与Invoice和Bill表之间创建关系。

答案 1 :(得分:1)

我建议如果它们是单独的概念,请将它们分开。通常,当您开始设计数据库并且您的表中具有相同列的实体时,就会产生将它们合并到1个表中的冲动。如果您知道在解决方案期间,您将永远不需要添加说客户特定字段或特定于供应商的字段,我会说继续将它们设为1个表。

保持它们分离允许每个实体在系统发展和成熟时自行开发。

答案 2 :(得分:1)

危险的道路有很多原因。

我认为从逻辑上讲,你可以把所有东西都折叠成一个带有“PrimaryKey”列和可选列Col1,Col2,Col3等的表。所有varchars都可以解释为其他类型。

特别是对于存在审计跟踪和存档问题的财务数据,这不是简化。

(但这是我们所经历的那种策略,作为过渡阶段...... :))

答案 3 :(得分:0)

在我们的ERP系统中,我们将账单和发票分开;供应商和客户,我们在一个表中。