外键也必须是唯一性约束吗?
外键也必须是唯一性约束吗?
客户表:
客户编号(主键)、姓名、年龄、住址、电话
订单主表:
订单编号(主键)、客户编号、订单金额、订货日期
上面2张表,订单主表的客户编号能作为客户表的外键引用客户表的客户编号么?
------解决方案--------------------当然能.
客户表中的 客户编号 作为主键有唯一性,但是订单主表中的 客户编号 就不一定是唯一的了.
------解决方案--------------------
------解决方案--------------------2表关联方式,有:
1对1
1对多
多对多(需要增加一个关联表了,它与原来的2个表都是1对多关系)
------解决方案--------------------外键也必须是唯一性约束吗?
是的,必须对客户编号建立主键或唯一键后,别的表才可引用为外键
订单主表的客户编号能作为客户表的外键引用客户表的客户编号么
可以,因客户编号是主键
正解!
------解决方案--------------------订单主表中的客户编号可以加唯一约束,表示1对1关系。
也可以不加唯一约束,表示一个客户可以有多个订单。
------解决方案--------------------外键约束是保证订单的客户是存在于客户表中的。
避免出现订单是张三的,但是张三不在客户表中的情况。
------解决方案--------------------
------解决方案-------------------- 1、 为关联字段创建外键。
2、 所有的键都必须唯一。
3、避免使用复合键。
4、外键总是关联唯一的键字段。
建键几个原则
------解决方案--------------------
------解决方案--------------------楼主可以参考一下官方的说明:
http://technet.microsoft.com/zh-cn/library/ms175464.aspx
------解决方案--------------------