0

ER 图 - 有人可以解释一下模态吗?

模态——两端各一

上图:如果有一个模块,它必须属于一门课程。如果有课程,我们真的希望有一个模块。但是图正确吗?

外键约束强制如果子表中存在模块,则父表中将存在课程。但是另一种方式没有约束,显然你必须在另一个之前创建一个记录。

那么,这是否更正确(下)?

模态 - 一端一个,另一端为零

或者模态为零是否意味着 FK 可以为空?

4

1 回答 1

1
  1. 第一张图是对的
  2. 没有右侧的“O”仅表示您允许开设没有模块的课程,这是一个 0-n 关系。

所以第一个意思是 1-n 关系,你想要什么,但你不能在 SQL 中强制 1-n 多于 0-n 。使用“|<”用于文档和代码实现,而不是用于 SQL 约束。

你的约定的含义:
ERD 图例

旁注:我更喜欢更明确的 UML“0-n”表示法,这将是 plantUML 中的结果:(使用 planttext.com 进行渲染)
在此处输入图像描述

@startuml
title Relationships - Class Diagram
class Courses
class Modules
Courses "1" *-up- "1-n" Modules: Composition
@enduml
于 2020-02-10T11:02:39.867 回答