【问题标题】:Database design: multiple unary relationships on same entity数据库设计:同一实体上的多个一元关系
【发布时间】:2016-11-01 11:57:03
【问题描述】:

我要在数据库中存储三种类型的用户。

  • 学校
  • 咨询
  • 学生(个人)

这里的想法是学生可以直接向学校申请,也可以通过咨询机构申请。

它们都具有相同的属性,因此存储在用户表中。从概念上讲,这些用户类型中的每一个都与其他两种用户类型有关系。关系是

  1. 顾问和学生:0..1 到 0..M
  2. 学校和咨询:1..M 到 0..M
  3. 学校和学生:0..M到0..M(1名学生可能有0所学校,因为他们没有直接连接,以防申请通过咨询服务)。

我需要帮助在同一实体(即用户)之间形成这些关系,最好使用演示图。

【问题讨论】:

  • @philipxy:设计方面,恐怕我还处于起步阶段。我希望你真正的意思是文件。我有应用程序原型和 SRS。我不禁注意到围绕“形成关系”的引用。请让我知道我是否应该使用其他术语。我只是一个学习的学生,因此非常感谢您对每一件小事的帮助。
  • 不清楚“在同一实体,即用户之间形成这些关系”是什么意思。也许你所说的“形成”只是指设计。我想您的意思是决定列、候选键、外键等,但请说出您要提供的内容。请尽最大努力交付成果。还有很多建模和图表方法,那么您使用的是哪些? PS您的问题本质上是要求教科书的设计/图表章节。这对于这里的问题来说太宽泛了。找一本教科书作为参考。 (很多都在线。)

标签: database database-design relational-database er-diagram


【解决方案1】:

表表示由它们标识的值和/或实体之间的应用关系。 “关系”也被混淆/混淆地用来表示“外键”。

在原始 ER 建模中,实体类型有方框和表格,关系类型有菱形,实体类型参与关系类型有线条/FK。一条线标有一个实体实例/行可以同时参与多少关系实例/行(instance/row)。但是不同的方法和图表样式使用符号和线的方式不同。

您已决定对哪些应用程序实体和关系感兴趣。(与 ERM 不同,关系模型不会人为地区分实体和关系。)

 Student(p) -- P identifies a student
 School(s) -- S identifies a school
 ...
 User(u, ...) -- U identifies a user and ...
 ...
 Representation(c, p, ...) -- consultancy C represents student P and ...
 Application(p, s, ...) -- student P has applied to school S and ...

一个表包含使 谓词 在其注释中成为真实语句的行。您需要足够的实体和关系以及相应的表格来完整描述可能出现的任何情况。

您提到了三种关系类型。您已经告诉我们他们的参与者实体类型和参与基数。但是你需要告诉我们每个关系的谓词,即每个关系是什么。然后在可能出现的每种情况下,给定实体参与给定关系一定次数。从而确定描述可能性的基数。

你应该选择一个特定的参考并遵循它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    相关资源
    最近更新 更多