sql – 外键vs二键
我曾经认为外键和二键是一回事.
在Google搜索之后,结果更加令人困惑,有些人认为它们是相同的,其他人则认为辅助键是一个不必是唯一的索引,并且允许比使用主键更快地访问数据. 有人可以解释这个区别吗? 解决方法wiki/Foreign_key中的定义指出:
以案例为例: 客户可以下1个或更多订单. 从业务的角度来看,每个客户都由唯一的ID(主键)标识,而不是每个订单重复客户信息,我们在该订单中放置一个引用或指向该唯一客户ID(客户的主键)的指针.订单表.通过查看任何订单,我们可以告诉谁使用唯一的客户ID放置它. 在插入Customer行后,在Order表中设置FK的值时,将建立父(Customer表)和子表(Order表)之间建立的关系.此外,删除子行可能会影响父级,具体取决于创建FK时建立的参照完整性标记(级联规则). FK有助于在关系数据库系统中建立完整性. 对于“辅助密钥”,该术语指的是一个或多个列的结构,它们一起帮助检索同一个表的一行或多行. “关键”这个词对某些人来说有点误导.辅助密钥不必是唯一的(与PK不同).它不是表的主键.它用于定位在其中定义的同一个表中的行(与FK不同).它的实施只能通过一个索引(或者是唯一的或不是唯一的)来实现是可选的.一个表可以有0,1个或更多的辅助密钥.例如,在Employee表中,您可以使用自动生成的列作为主键.或者,您可以决定使用员工编号或SSN来检索员工信息. 有时人们将术语“辅助密钥”与术语“候选密钥”或“备用密钥”(通常出现在规范化上下文中)混合在一起,但它们都是不同的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取
- sqlserver字符串拆分(split)方法汇总
- 使用use index优化sql查询的详细介绍
- sql – 如何在表中获得第一个未使用的ID?
- sql-server – 如何定期进行Sql Server性能监控和故障排除?
- JasperReport+iReport实现套打的问题总结
- sql-server-2005 – 我可以限制SQL Server 2005使用的CPU数
- sqlserver中在指定数据库的所有表的所有列中搜索给定的值
- SQL Server全文搜索包含连字符的短语不会返回预期结果
- MS SQL Server SA权限最新入侵方法