数据库表设计优化与 SQLCMD 自动化部署
一、数据库表的第三范式优化
1. 第三范式概念
在数据库设计中,第三范式(3NF)是一个重要的概念。当一个表已经处于第二范式(2NF),并且表中的每一列都只依赖于主键时,该表就满足第三范式。与 2NF 不同的是,2NF 主要关注消除依赖于其他列的列,而 3NF 则着重于确保列与可能的主键列有明确的依赖关系。
2. 现有表分析
除了 Contacts 表外,其他表都比较简单,已经成功满足 3NF。而 Contacts 表中,大部分列依赖于 ContactId 主键,但 FirstAddress 和 SecondAddress 的依赖关系不明确。如果假设 FirstAddress 存储地址的第一行,SecondAddress 存储第二行,那么 SecondAddress 依赖于 FirstAddress,这不符合 3NF。此外,列名的命名也存在问题,可能会让其他开发者产生误解。
3. 解决方案
为了解决地址问题,我们需要将地址细节移到单独的表中。具体操作步骤如下:
1. 创建 ContactAddresses 表 :
USE AddressBook;
IF EXISTS (SELECT 1 FROM sys.tables WHERE [Name] = 'ContactAddresses')
BEGIN
DROP TABLE dbo.ContactAddresses;
END;
CREATE TABLE dbo.ContactAddre
超级会员免费看
订阅专栏 解锁全文
3541

被折叠的 条评论
为什么被折叠?



