【问题标题】:Key of entity that is weak and in isa relationship at the same time弱且同时处于 isa 关系的实体的 key
【发布时间】:2023-04-05 07:19:02
【问题描述】:

我不知道如何创建应该表示实体的表,该实体在 ISA 关系中同时是一个弱实体。 IE。我有实体ContestantJudgesParticipantsClub 及其属性,ContestantJudgesParticipants 有ISA 关系,并且Contestant 依赖于Club,而且它很弱实体(ISA 除外)。我应该如何在 SQL 开发人员中创建表 Contestant? (该表的键是什么)提前谢谢!:)

【问题讨论】:

  • 您需要Participants(是否必须)?如果可能的话,我会避开这张桌子。
  • 我打算用它,但我可以避免它..解决方案是否太复杂?
  • 我会说 - 这不是一种“关系方式”。
  • 你是什么意思?我会使用任何解决方案:)

标签: sql oracle database-design


【解决方案1】:

我会提出以下建议:

  • 表格person 包含个人信息(姓名、电子邮件、电话号码等)
  • 表格contest 包含有关比赛的信息
  • 表格role,角色角色:“参赛者”、“评委”等。
  • participation,其中包含当前人员的人员ID、比赛ID和角色ID。

如果没有您的问题的任何其他详细信息,很难说还应该向此架构添加什么。

【讨论】:

  • 我认为我可以在创建表参赛者中用几行代码编写一些代码。无论如何,谢谢!
【解决方案2】:

这是类/子类的经典案例,或者,如果您愿意,也可以是类型/子类型。许多 ISA 关系都属于这一类。参赛者和评委是参赛者的子类。可以想象,某个人可能是某场比赛的参赛者,但另一场比赛的评委。

您希望处理的复杂程度取决于您要管理的数据以及您打算如何处理这些数据。在您的案例中,您没有提供足够的详细信息来回答该问题。越简单通常越好,除非它不是。

参赛者的某些属性,例如电话号码,对于评委和参赛者来说都是通用的。如果电话号码存储在 Participant 表中,而不是单独存储在 Contestant 和 Judge 表中,管理电话号码会稍微容易一些。但是管理第三张表会比较复杂。

如果您应该选择更深入地探索 ISA 关系的关系建模,以下三个标签可以帮助您:

这三个标签将一些与您提出的问题有些相关的问题和答案组合在一起。此外,每个标签下都有一个信息选项卡,提供一般描述。

如果您刚刚开始使用数据库,则没有必要学习所有这些材料。在某些时候,它可能会与您相关。

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    相关资源
    最近更新 更多