2016-10-28 11:19发布
数据库中,一对多的时候外键设置在多的那张表吗?如果一对一的时候,外键应该设置在哪里?多对多的时候,外键应该设置在哪里??
首先你得题目和你的补充内容不一致,呵呵!你题目的内容别人已经回答过了。补充内容中的问题,是可以实现的,现在大多数数据库都支持列的类型为复合数据类型,这样可以在一列中存储一张表或者一个数组。比如:oracle支持对象类型、嵌套表、数组等复合数据类型。你问题中的表在oracle中可以这样设计:1:定义一个学生的对象类型2:教室表中的students字段的类型定义为学生对象类型就可以了
题主如果问的是一对多关系是否可以用外键表示,答案是肯定的,因为一般实体之间的关系有一对一,一对多,多对多,一对多的关系外键一般在多的一方便可维护它们之间的关系。题主如果问的是一个外键是否可以被多张表引用,答案也是肯定的,不冲突。
其它网友回答:
首先,外键引用的那个列在主表中必须是主键列或者唯一列。
所以1:n的肯定把外键建立在n的那张表上。
1:1,一般要看谁是主表,谁是附属表,外键当然建立在附属表中。
n:m的情况,需要建立一个关系表,
两个原表和其关系分别是1:n,1 :m
最多设置5个标签!
首先你得题目和你的补充内容不一致,呵呵!
你题目的内容别人已经回答过了。
补充内容中的问题,是可以实现的,现在大多数数据库都支持列的类型为复合数据类型,这样可以在一列中存储一张表或者一个数组。比如:oracle支持对象类型、嵌套表、数组等复合数据类型。你问题中的表在oracle中可以这样设计:
1:定义一个学生的对象类型
2:教室表中的students字段的类型定义为学生对象类型就可以了
题主如果问的是一对多关系是否可以用外键表示,答案是肯定的,因为一般实体之间的关系有一对一,一对多,多对多,一对多的关系外键一般在多的一方便可维护它们之间的关系。
题主如果问的是一个外键是否可以被多张表引用,答案也是肯定的,不冲突。
其它网友回答:
首先,外键引用的那个列在主表中必须是主键列或者唯一列。
所以1:n的肯定把外键建立在n的那张表上。
1:1,一般要看谁是主表,谁是附属表,外键当然建立在附属表中。
n:m的情况,需要建立一个关系表,
两个原表和其关系分别是1:n,1 :m
一周热门 更多>