最佳解决方案 - 三元或二元关系

Best Solution - Ternary or Binary Relationship

我正在尝试为我的一门课程完成一个问题,它围绕哪种关系是最佳解决方案——二元关系还是三元关系。

关系示例

所以它是一家音像店,具有三个实体 - Video、Member 和 Casual。

会员、临时会员可以借视频,并记录借视频的日期。

三元关系是不是最合适的方案,因为没有会员和随便借视频的区别?

您认为“借用”菱形代表什么 三元(3 实体)关系?它介于会员客户、视频、临时客户和贷款日期之间。 “MEMBER 在 LOANDATE 上从 CASUAL 借了 VIDEO”? “VIDEO是LOANDATE出生的CASUAL打卡会员”? “会员在 LOANDATE 到期且 CASUAL 借用的 VIDEO 为空,或者在 LOANDATE 到期且 MEMBER 的 CASUAL 借用 VIDEO 为空”?左右二元“借用”关系中的每一个都是如此。

(我正在使用 谓词(按列参数化的语句模板)来表达 table 的“含义”。当你插入一行时,你会得到命题(陈述)。每个table(基础或查询结果)都包含使其谓词成为真命题的行。关系运算符(连接、联合等)是选择使用所需查询谓词的逻辑非终结符(AND、OR 等)交替表达和计算谓词表达式。)

图中有一个菱形。它必须代表 MEMBER、VIDEO 和 CASUAL 实体加上 LOANDATE 之间的关系。除了 AND 或其他更小的借用组合之外,似乎很难为三元借用提出合理的借用,不是吗?如果你想不出一个,那么这不是描述你的情况的图表。我也想不出一个仅限于这三种实体的三胞胎。而二进制文件很容易理解。

PS 我唯一的警告是:我给出的第三个选项实际上是数据库 table 中体现的典型关系。但这不仅仅是模型实体的关系。它还涉及一个“空”值。如果我们认为关系是 识别 实体或不识别的值之间的关系,那么我们可以拥有使用 null.

的关系
Borrows:
    "MEMBER borrowed VIDEO due on LOANDATE and CASUAL is null
    or CASUAL borrowed VIDEO due on LOANDATE and MEMBER is null"
MEMBER  VIDEO   CASUAL   LOANDATE
=================================
  1       a      null    1/1/2000
  2       b      null    1/2/2000
 null     c    1234567   2/3/2000

不知道你们老师的意思。但是我怀疑他们没想到你会牵扯到null。

PPS Re “二元关系会不会有一个问题,一个 MEMBER 和一个 CASUAL 可以同时借用同一个视频?”我不确定你在想什么。但是关系只包含从其语句模板中做出真实语句的行。它描述了情况。它不能使情况成为某种方式。 “业务规则”(和物理学!)限制出现的情况。但是您确实需要为 运行 业务记录足够的信息。并且可以告知 DBMS 不可能的数据库状态,因此它可以拒绝它们。