这主要是一个设计问题:
好的,所以我试图为一个包含类型和子类型的票证类型表创建一个关系。每个子类型对于其父类型都是唯一的。我尽量避免在票证表中同时包含这两个字段。我正在考虑创建一个带有自然键的链接表,然后将该键放在ticket表中,该键将指向Type和Subtype的适当组合。
我关心的是保持这些组合的独特性。因此,例如,如果有人跳到表中(没有先做功课),并试图添加类型5、子类型3之类的组合,而该特定组合已经存在,则dbms不应该允许这样做,类似于主键。
所以我想知道创建一个使用自然键、类型id和子类型id的主键是否愚蠢(因为感觉确实如此)。这似乎没有任何帮助,因为自然键最终会使每个条目都是唯一的,从而使每个条目有效。
有更好的方法吗?不尝试约束这些链接/组合会更简单吗?我应该把这两个字段都放在售票表上,然后把它吸起来吗?
使用UNIQUE约束来确保类型和子类型的组合是唯一的,然后为自然键提供一个单独的主键。