回答

收藏

SQL Server数据库中的枚举

技术问答 技术问答 565 人阅读 | 0 人回复 | 2023-09-14

除了简单地为每个枚举创建搜索表(Id,除了列出代码和名称之外,是否有更好或更简单的方法来列举(在C#存储在编程语言中的枚举等SQL
2 x5 q" }' P$ ]! o1 RServer在数据库中,而不是为每个枚举创建一个搜索表(特别是当有枚举时)?我发现有一篇文章建议只为所有枚举创建一个搜索表,有些人批评这种方法违反了引用数据的完整性,所以有些人批评这种方法。如果枚举仅用于一个表,使用一些预定义的代码并添加约束(是否使用扩展属性)是一个好习惯吗?
5 _$ n9 X# k' p2 k5 t  L                                                               
4 `# t" u+ k4 t9 p: e* i& f    解决方案:                                                               
" i! J! k) r8 }                                                                [ol]就个人而言,我喜欢为每个枚举定义一个搜索表,因为它也是一个文档。如果有人想知道id他会很容易地在表中找到它代表什么。在列约束中找到这些信息并不明显。
; A! q* G) c) l) t- M9 N& L在表中添加新值比在约束中添加新值容易得多。# @- |; `3 P0 J: `5 J- Q9 v
如果创建数据库图,单个搜索表看起来更合乎逻辑。" r4 l4 l" c5 q4 g2 s9 ]  ?7 t
如有必要,你可以ID在每个搜索表中添加文本以外的其他信息(如注释、排序列、某些标记等)。5 ?# e; O# b1 T* E
正如你所说,参考完整性更好
7 Z/ Z3 k! z8 m; v[/ol]但是; 如果您优先使用代码o / r-mapper,使用编程语言提供的枚举会很自然。这是因为你不是在设计数据库,而是在设计对象模型。o /, G: \4 F' ]  s* Y3 G  ?8 S4 N  }$ c
r-mapper自动为您创建数据库。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则