数据库设计/文档关系问题

时间:2014-10-22 23:53:50

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

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

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

  • 仅限商家
  • 商家和多个联系人
  • 仅限消费者(单身人士,与业务无关)
  • 多个消费者

上述对齐用于搜索和索引文档,以及存储业务和联系人详细信息以供重复使用。

我们只是说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 - 与消费者'Adam Smith'对齐
  5. NewOrder.pdf - 与消费者'Adam Smith'和'Sue Smith'对齐
  6. 作为一个例子,让我们从上面得到关系(1),(3)和(4)。我想到如何实现这种关系的唯一方法是将文档对齐如下....

    enter image description here

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

    会喜欢一些评论,反馈和更重要的建议:thumbup:

    TIA

1 个答案:

答案 0 :(得分:1)

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

table.documentBusinessRelationship:    
    DocumentID
    BusinessID

通过这种方式,您只能在数据库中找到实际与企业有关系的任何文档。

另一个联接表

table.documentContactRelationship
    DocumentID
    ContactID

这些连接表的最大问题可能是它可以使查询更复杂一些 - 但至少你保持某种正常形式,没有数据重复或空占位符列。