日期:2014-05-17  浏览次数:20668 次

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

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


上面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