我有大约 10 个值的枚举 - 它们是 Char,例如 A 到 K。这些都是唯一的。它们用于两个目的 - 应用程序被迫选择可接受的值,并且产品和此枚举表之间存在多对多关系。
将主键设置为这个唯一值 [AK] 是不好的做法吗?所以基本上一列 char(1) 作为主键。或者我应该使用 ID 字段,然后在列中设置这些值并强制该列唯一?
此枚举中的值永远不会改变。它们由表示法固定。例如,位置 1 只能是位置 1,就像一垒永远是一垒,永远不会成为三垒(或者至少在过去的 150 年里它没有——我的应用程序可能不会持续那么久)。所以这就是为什么我想简单地这样做——因为它确实是永久的、不变的。
如果您的设计师或用户在选择这些值时可以做出任何选择,我会选择代理 ID 方法。已经决定的事情可能还未决定,有了代理人,改变会更容易。
由于您坚持认为这些值是由自然法则(或者至少是某些外部权威)固定的,所以我可以使用单列方法。在这些情况下,更改的可能性和更广泛的影响意味着您可能会得到足够的通知来影响应用程序更新。