Ruby on rails 发票应用程序的正确数据库设计和关系

Ruby on rails 发票应用程序的正确数据库设计和关系,ruby-on-rails,postgresql,database-design,erd,Ruby On Rails,Postgresql,Database Design,Erd,我正在创建发票应用程序。以下流程图是否是正确且完整的应用程序 我是否缺少任何型号 还有其他更好的设计方法吗 是否有减少表格数量的选项 在当前模型中,当用户添加新发票时,我需要与几乎所有的表进行交互 当用户编辑同一张发票时,我同样需要与所有提到的表进行交互 很难说,因为只有您知道应用程序的规范和它应该做什么,并且您发布的是一些概念而不是设计(例如UML图)。但给出您提供的信息: 我们有一个联系人。如果您想从许多客户处开具发票,最好有发卡行和承包商(两个联系人) 当我看到UML图时,我可以回答这个

我正在创建发票应用程序。以下流程图是否是正确且完整的应用程序

  • 我是否缺少任何型号
  • 还有其他更好的设计方法吗
  • 是否有减少表格数量的选项
  • 在当前模型中,当用户添加新发票时,我需要与几乎所有的表进行交互
  • 当用户编辑同一张发票时,我同样需要与所有提到的表进行交互

  • 很难说,因为只有您知道应用程序的规范和它应该做什么,并且您发布的是一些概念而不是设计(例如UML图)。但给出您提供的信息:

  • 我们有一个联系人。如果您想从许多客户处开具发票,最好有发卡行和承包商(两个联系人)

  • 当我看到UML图时,我可以回答这个问题

  • 为什么要减少表的数量?如果你想,你可以有一张大桌子,但这不是重点。只需保持数据库设计规范化(第三种标准形式),而不必关心表的数量

  • 必须指出的是,我认为您不需要税务和货币关系,您可以将它们移动到发票属性,但再一次,我不了解全部情况

  • 不,你没有。当您向同一客户开具新发票并向他出售相同的物品时,只需将记录添加到两个表(发票、发票物品)。无论如何,不要考虑用这种方式修改数据库,您有数据库来处理它:)

  • 如上所述,没有


  • 亲爱的@justme,忽略第六个问题。我把它拿走了。发票如何可以有2个联系人。我已经实时看到了这种情况。@Aravin我指的不是两个联系人,而是“不仅仅是一个发卡行”,例如,开具发票的公司可以及时更改。