数据库设计如何引用表

时间:2012-03-30 16:57:45

标签: mysql sql database-design

所以我不知道这是否可以接受。

我有以下表格:DocumentContent Reviewers

Content_Reviewers包含字段:cr_idfk_ProductIDfk_DocumentIDNameContactInfo

1, 1, 3, 'Derek', '555-555-5555 Lives in Washington'
2  3, 35, 'James', 'California'

文档包含字段:doc_idfk_productIDsectionNameparentIDtext

1, 1, 'Title', 0, ''
2, 1, 'Contributors', 0 'People who helped in some fashion'
3, 1, 'Editors', 2, 'People who helped edit the document'
...
35, 4, 'Editors', 33, 'People who helped edit the document'

所以我想要完成的是我可以拥有许多产品,部分或全部产品可以拥有Editiors或Contributors部分。如果他们这样做,我希望能够将“Content_Reviewers”表与该部分相关联。

所以我的第一个倾向是:

  1. 设置新的Sections表,以避免重复'SectionName''Text'
  2. 添加一个新列,例如TableDataDocument,其中包含与之关联的表的名称? Content_Reviewers? (这是我不知道如何做得好)
  3. 这个想法是,至少有十几个部分可以将自己的各个表与该部分相关联,但不一定总是在产品中提供。

    感谢。

1 个答案:

答案 0 :(得分:0)

这是一个多对多的基数。应该创建一个链接表

例如: 文件表,有id 产品表,有id

创建document_product表 fk_Document.id fk_Product.id 并通过fk​​_Document.id和fk_Product.id创建一个组合唯一键,以确保没有重复。