SqlServer数据库外键的困惑

Posted feng-ye1192

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlServer数据库外键的困惑相关的知识,希望对你有一定的参考价值。

在设计数据库和备份数据的时候是否使用外键一直很纠结。先说一下外键的优缺点吧

优点:保证数据的完整性和一致性和可靠性,能做到一次修改所有使用外键的数据对应的信息都改变的作用

缺点:数据表增多,增加开发难度。降低(Insert、Update、Delete)速度

取代外键的方法:触发器、程序

订单一般是我们设计最多的数据了。下面以订单举个类子

订单一般会有客户、订单状态、产品、供应商等信息。

这些属性都有外键以及各自的描述信息,如果订单上只存在有这些信息的外键。会有以下几个问题。

1. 查询/新增/修改/删除信息的时候需要涉及这些属性对应的表

2. 做记录备份的时候需要将对应的描述信息也进行备份。

这样在做订单的操作的时候性能就会相对比较慢。

在做订单备份的时候是否有必要备份这些外键属性。因为备份了意义不是很大,因为属性信息修改了,记录的描述信息是不能修改的。这样查询出来的描述应该怎么处理,都是需要考虑的问题。但作为检索条件,我们只能取用最新的属性记录,根据Key去检索。或者作为历史记录我们是否应该用key值去检索。感觉客户的需求才是决定设计的关键。

 

以上是关于SqlServer数据库外键的困惑的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server:创建具有多个外键的表

sql server的主键与外键问题

sqlserver2000数据库数据转移

请问SQL server 中的主键和外键的作用

sqlserver外键关系有啥用?

sql server怎样删除外键约束?