【问题标题】:Database Design / Document Relationship Issue数据库设计/文档关系问题
【发布时间】:2014-10-22 23:53:49
【问题描述】:

我目前正在设计和开发一个文档管理系统,并且遇到了一个让我非常头疼的问题。最重要的是,这只是一个健全的检查......

基本上系统存储文档,这些文档可以与以下任何实体有关系:

  • 仅限企业
  • 一个企业和多个联系人
  • 仅限消费者(个人,与业务无关)
  • 多个消费者

上述对齐方式用于搜索和索引文档,以及存储业务和联系方式以供重复使用。

假设 NewOrder.pdf 是购买新车的合同,可能存在以下组合:

  1. NewOrder.pdf - 与业务“Acme Pty Ltd”一致
  2. NewOrder.pdf - 与企业“Acme Pty Ltd”保持一致并联系“John Doe”
  3. NewOrder.pdf - 与企业“Acme Pty Ltd”保持一致,并联系“John Doe”和“Wayne Kerr”
  4. NewOrder.pdf - 与消费者“亚当·史密斯”一致
  5. NewOrder.pdf - 与消费者“Adam Smith”和“Sue Smith”一致

作为示例,让我们从上面的关系 (1)、(3) 和 (4) 开始。我想到如何实现这种关系的唯一方法是按如下方式对齐文档....

以上内容很脏,因为我正在创建包含重复信息或空白条目的表格。

希望得到一些 cmets、反馈和更重要的建议 :thumbup:

TIA

【问题讨论】:

    标签: database design-patterns database-design model-view-controller relational-database


    【解决方案1】:

    我会尽量避免重复数据 - 它会以泪水告终。也许考虑连接表?即。

    table.documentBusinessRelationship:    
        DocumentID
        BusinessID
    

    这样一来,您在数据库中就只有与企业有实际关系的任何文档的一行。

    还有一个连接表

    table.documentContactRelationship
        DocumentID
        ContactID
    

    也许这类连接表的最大问题是它会使查询变得更加复杂 - 但至少您保持某种正常形式,没有数据重复或空占位符列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2015-01-20
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多