database - 师生答疑——数据库设计
问题描述
我正在设计一个数据库。我有问题,答案,学生和教师实体问题仅由学生提出,但由教师和学生回答,如下所示:
所以一个答案应该只有一个教师 ID 或学生 ID 如何在不使用继承的情况下在类图中表示这个?
解决方案
由任何一个提出的Questions
要求Student
和相关的要求,或者可以在 UML 中借助约束来表示:Answer
Student
Teacher
因此,在您的模型 2 中,关于回答者的答案可能存在关联:学生和教师。但是约束表明,对于给定的答案,只有其中一个是活动的。约束用大括号表示。您可以使用自然语言(或像我在这里所做的那样的伪自然语言),或者使用更正式且不那么模棱两可的 OCL 表达式。
在关系数据库中,您可以完全使用此方案,并具有两个可为空的外键,例如 ByStudent
,ByTeacher
and 您的代码必须确保遵守约束。
在 UML 中表示这一点的另一种方法是在泛化的帮助下显示缺失的概念:
这在概念上更有希望。然而,在关系数据库中,没有办法直接表达这一点。因此,您需要使用一些最终与上述内容非常相似的表映射,或者使用额外的单一继承表来映射Author
.
推荐阅读
- python-3.x - 如何检查输入日期是否为业务月末
- python - 使用 if else 条件列出理解 - Python
- scala - 在 Spark-submit 中加载类失败
- scala - ScalaTest 需要使用多项目 sbt 的设置
- python - 如何在 python 3 中使用花括号 {} 打印列表项?
- ios - IOS NotificationContentExtension 背景颜色匹配主题
- javascript - 使用 jQuery 创建动态卡片
- android - Proguard 导致“无法启动活动 ComponentInfo{ActivityMain}:java.lang.NoSuchMethodException:
[class]" 用于 ViewModels 工厂 - asp.net-core - 如何将日志实例注入网络核心类库
- r - 如果另一个输入被更改,如何自动更新一个输入?