ER 图 - 有人可以解释一下模态吗?
上图:如果有一个模块,它必须属于一门课程。如果有课程,我们真的希望有一个模块。但是图正确吗?
外键约束强制如果子表中存在模块,则父表中将存在课程。但是另一种方式没有约束,显然你必须在另一个之前创建一个记录。
那么,这是否更正确(下)?
或者模态为零是否意味着 FK 可以为空?
ER 图 - 有人可以解释一下模态吗?
上图:如果有一个模块,它必须属于一门课程。如果有课程,我们真的希望有一个模块。但是图正确吗?
外键约束强制如果子表中存在模块,则父表中将存在课程。但是另一种方式没有约束,显然你必须在另一个之前创建一个记录。
那么,这是否更正确(下)?
或者模态为零是否意味着 FK 可以为空?
所以第一个意思是 1-n 关系,你想要什么,但你不能在 SQL 中强制 1-n 多于 0-n 。使用“|<”用于文档和代码实现,而不是用于 SQL 约束。
旁注:我更喜欢更明确的 UML“0-n”表示法,这将是 plantUML 中的结果:(使用 planttext.com 进行渲染)
@startuml
title Relationships - Class Diagram
class Courses
class Modules
Courses "1" *-up- "1-n" Modules: Composition
@enduml