首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

外键也务须是唯一性约束吗

2012-09-01 
外键也必须是唯一性约束吗?外键也必须是唯一性约束吗?客户表:客户编号(主键)、姓名、年龄、住址、电话订单主表

外键也必须是唯一性约束吗?
外键也必须是唯一性约束吗?

客户表:
客户编号(主键)、姓名、年龄、住址、电话
订单主表:
订单编号(主键)、客户编号、订单金额、订货日期


上面2张表,订单主表的客户编号能作为客户表的外键引用客户表的客户编号么?

[解决办法]
当然能.
客户表中的 客户编号 作为主键有唯一性,但是订单主表中的 客户编号 就不一定是唯一的了.
[解决办法]

探讨
外键也必须是唯一性约束吗?【是的,必须对客户编号建立主键或唯一键后,别的表才可引用为外键】

订单主表的客户编号能作为客户表的外键引用客户表的客户编号么【可以,因客户编号是主键】

[解决办法]
2表关联方式,有:
1对1
1对多
多对多(需要增加一个关联表了,它与原来的2个表都是1对多关系)
[解决办法]
外键也必须是唯一性约束吗?
是的,必须对客户编号建立主键或唯一键后,别的表才可引用为外键

订单主表的客户编号能作为客户表的外键引用客户表的客户编号么
可以,因客户编号是主键

正解!
[解决办法]
订单主表中的客户编号可以加唯一约束,表示1对1关系。
也可以不加唯一约束,表示一个客户可以有多个订单。
[解决办法]
外键约束是保证订单的客户是存在于客户表中的。

避免出现订单是张三的,但是张三不在客户表中的情况。
[解决办法]
探讨

引用:

订单主表中的客户编号可以加唯一约束,表示1对1关系。
也可以不加唯一约束,表示一个客户可以有多个订单。

上面其他朋友说外键必须是唯一性的,那一个客户如果有多个订单,怎么办呢?就不能满足唯一性了,况且一个客户肯定是有多个订单的,这种情况下,是不是不设置外键?

能不能举个简单的例子,说明外键的使用,谢谢..........

[解决办法]
1、 为关联字段创建外键。
  2、 所有的键都必须唯一。
  3、避免使用复合键。
  4、外键总是关联唯一的键字段。
建键几个原则
[解决办法]
探讨

引用:

引用:

引用:

订单主表中的客户编号可以加唯一约束,表示1对1关系。
也可以不加唯一约束,表示一个客户可以有多个订单。

上面其他朋友说外键必须是唯一性的,那一个客户如果有多个订单,怎么办呢?就不能满足唯一性了,况且一个客户肯定是有多个订单的,这种情况下,是不是不设置外键?

能不能举个简单的例子,说明外键……

[解决办法]
楼主可以参考一下官方的说明:
http://technet.microsoft.com/zh-cn/library/ms175464.aspx
[解决办法]
探讨

楼主可以参考一下官方的说明:
http://technet.microsoft.com/zh-cn/library/ms175464.aspx

热点排行