回答

收藏

SQL Server数据库中的枚举

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

除了简单地为每个枚举创建搜索表(Id,除了列出代码和名称之外,是否有更好或更简单的方法来列举(在C#存储在编程语言中的枚举等SQL  g6 u) a" L+ Q, J# \* s9 U' C. P2 W
Server在数据库中,而不是为每个枚举创建一个搜索表(特别是当有枚举时)?我发现有一篇文章建议只为所有枚举创建一个搜索表,有些人批评这种方法违反了引用数据的完整性,所以有些人批评这种方法。如果枚举仅用于一个表,使用一些预定义的代码并添加约束(是否使用扩展属性)是一个好习惯吗?
* T' e1 H" @" F. U) v                                                               
- T6 ]  {! v; v* D- g/ J" c    解决方案:                                                                & \) c! j! g$ Y% ]4 ]$ _+ W" V# ?
                                                                [ol]就个人而言,我喜欢为每个枚举定义一个搜索表,因为它也是一个文档。如果有人想知道id他会很容易地在表中找到它代表什么。在列约束中找到这些信息并不明显。( @! R3 |* L1 C+ Q, |
在表中添加新值比在约束中添加新值容易得多。" W1 B3 l  H, H# f- z
如果创建数据库图,单个搜索表看起来更合乎逻辑。% O% Q. V: }1 E/ T; x  ]
如有必要,你可以ID在每个搜索表中添加文本以外的其他信息(如注释、排序列、某些标记等)。; k- ^$ P# `: c
正如你所说,参考完整性更好
  b% g: Y# \% B& g# ~[/ol]但是; 如果您优先使用代码o / r-mapper,使用编程语言提供的枚举会很自然。这是因为你不是在设计数据库,而是在设计对象模型。o /4 T0 ~* `; m  W" f# H& K
r-mapper自动为您创建数据库。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则