Dre*_*mer 0 mysql database sql-server oracle
尝试在这里获得一些关于创建模式关系时哪种选择更好的专业想法
我从这篇文章中大致找到了一个想法,但仍在尝试获得更多想法。
一个简单的场景可能是这样的:
class <--> Student <--> Teacher <--> class
Run Code Online (Sandbox Code Playgroud)
(假设一个老师可以教多个班级)这是一个many-to-many回合关系的正常情况。并且查询可以从任意对等点开始向任意方向进行。那么什么是更好的设计呢?
我知道在一对一关系中映射表绝对是一种浪费,但是映射表解决方案ONLY对many-to-many关系有好处吗,就像那篇文章提到的那样?如果我们想用方向扩展多对多关系。如果关系是one-direction而非bidirectional,答案会不同吗?
提前致谢。
一些简单的规则:
对于一对一关系,外键可以保存在关系中涉及的任一表中,并引用另一个表。
对于一对多关系,关系多方的表应保存外键。
对于多对多关系,您可以创建一个关联表(用您的术语来说是映射表),它是第三个表,保存多对多关系中涉及的两个表的外键。
例如,假设我们有表STUDENT、CLASS和TEACHER。STUDENT一般来说,和之间是多对多的关系CLASS,TEACHER 到 CLASS 是一对多的关系(假设一个班级只有一名老师)。因此,这些表可能如下所示:
STUDENT: STUDENT_ID, STUDENT_NAME, etc.
CLASS: CLASS_ID, TEACHER_ID (foreign key), CLASS_NAME, etc.
TEACHER: TEACHER_ID, NAME, etc.
STUDENT_CLASS (mapping table): STUDENT_ID (foreign key), CLASS_ID (foreign key), GRADE, etc.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6265 次 |
| 最近记录: |