数据库中,一对多的时候外键设置在多的那张表吗?如果一对一的时候,外键应该设置在哪里?多对多的时候 财富值71

2016-10-28 11:19发布

数据库中,一对多的时候外键设置在多的那张表吗?如果一对一的时候,外键应该设置在哪里?多对多的时候,外键应该设置在哪里??

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
mishen - whatsns产品经理
1楼-- · 2016-12-09 23:49

首先你得题目和你的补充内容不一致,呵呵!
你题目的内容别人已经回答过了。
补充内容中的问题,是可以实现的,现在大多数数据库都支持列的类型为复合数据类型,这样可以在一列中存储一张表或者一个数组。比如:oracle支持对象类型、嵌套表、数组等复合数据类型。你问题中的表在oracle中可以这样设计:
1:定义一个学生的对象类型
2:教室表中的students字段的类型定义为学生对象类型就可以了


题主如果问的是一对多关系是否可以用外键表示,答案是肯定的,因为一般实体之间的关系有一对一,一对多,多对多,一对多的关系外键一般在多的一方便可维护它们之间的关系。

题主如果问的是一个外键是否可以被多张表引用,答案也是肯定的,不冲突。


其它网友回答:

首先,外键引用的那个列在主表中必须是主键列或者唯一列。

 所以1:n的肯定把外键建立在n的那张表上。

 1:1,一般要看谁是主表,谁是附属表,外键当然建立在附属表中。 

n:m的情况,需要建立一个关系表,

两个原表和其关系分别是1:n,1 :m