我正在使用MSDN中的一个示例,它使用一个小型数据库来演示数据驱动的测试,这里是简单的架构:
CREATE TABLE dbo.LogonInfoTest
(
UserId nchar(256) NOT NULL PRIMARY KEY CLUSTERED,
Password nvarchar(256) NULL,
IsValid bit NOT NULL
) ON [PRIMARY]
GO
我的问题是:选择nchar作为UserId和nvarchar的数据类型作为密码数据类型的根本原因是什么?
答案 0 :(得分:5)
没有理由。主键应该是NVARCHAR(256),因为我很难相信UserId 总是 256个字符。现在这个架构可能会浪费(大量)磁盘上的空间。请注意,对于SQL Server 2008 row-compression存储,固定长度列无论如何都将在磁盘上存储为可变长度列(删除尾随空格),但如果启用了行压缩,则仅 。