Char(4)为主键

Dea*_*unt 2 sql-server

经典数据库表设计将包括一个tableId int index(1,1) not null导致自动增加int32 id字段的设计.

但是,给这些数字赋予一些含义可能是有用的,我想知道人们对包含可枚举的表使用Char(4)字段的想法.

具体来说,我在考虑一个具有数据的用户角色表;

"admn" - "Administrator"
"edit" - "Editor". 
Run Code Online (Sandbox Code Playgroud)

然后我可以在我的代码中引用这些"代码".

更新
它使编写代码时看到User.IsInRole("管理员"),而不是User.IsInRole(UserRoles.Admin)其中,管理是需要更新/如果你重建你的数据库同步的int更有意义.

Mla*_*vic 5

id字段(与数据无关)称为代理键.它们各有利弊.您可以在此维基百科文章中看到这些列表.就个人而言,我觉得人们过度使用它们并且忘记了(或者从未学过)如何正确地规范化数据库结构.