在逻辑ER设计中,何时应该是外键,也是主键?

时间:2014-04-11 11:29:25

标签: mysql sql database entity entity-relationship

我目前正致力于基于研究期刊/纸质数据库的数据库设计任务。 我遇到的主要问题是决定某些实体是否有足够的唯一标识符(以及正确的标识符)以及我是否能够正确地建立关系。

所以举个例子。每篇研究论文都有一个独特的PaperID(PK)。每篇研究论文都有一份关键词列表(通常为4-5),作者在论文开头列出了这些关键词。

  1. 我是否正确地认为这是一对多的关系? - 一篇论文有很多关键词,每个关键词实例属于一篇论文。

  2. Paper PK(PaperID)是否成为FK&关键字表的PK?这种布局是否支持上述一对多关系?

  3. e.g。


    表格 - 论文

    PK = PaperID

    属性列表


    表格 - 关键字

    PK,FK = PaperID

    关键字


    因此,查找具有特定关键字的所有论文(例如“猪”)的查询将显示类似于以下内容的结果:

    PaperID |关键字

    1 | '猪'

    2 | '猪'

    63 | '猪'


    我的逻辑是正确的思考方式吗?

    非常感谢任何建议或帮助!

    由于

    ***编辑:所以似乎大多数人认为这是一种多对多的关系,不幸的是,研究论文中有许多关系(例如研究目的,主要主题,子主题) (s),研究类型,研究问题)

    - >那么我是否必须通过为每一个创建关联实体来解决这些问题?!当然必须有更好的方法来解决这些多对多的问题,而不是必须创建一个额外的...... 8-10关联实体?超类型/子类型?

    再次感谢大家的回应。我一边学习!

1 个答案:

答案 0 :(得分:0)

  1. 我原以为“关键字到纸”会是多对多的关系。关键字“猪”出现在许多论文中。任何一篇论文都可以有很多关键词。这样你就可以减少文本的重复。 (但话说回来,编码你的方式可能会更快。)

  2. 如果您的关系是一对多,那么您可能需要在关键字表上使用复合键,因此关键字的PK由PaperID +关键字组成。老实说,我不会出汗 - 听起来你只想要一个关键词的索引,而不是担心为那张桌子制作一个结构良好的PK。