2012-07-23 33 views
0

这主要是一个设计问题:利用3字段的主键?不知道我看这个正确

好吧,所以我想创建一个包含类型和子类型的票证类型表的关系。每个子类型都是它的父类型唯一的。我试图避免在票据表中有两个字段。我正在考虑用一个自然键创建一个链接表,然后将这个键放到票据表中,并且该键将指向Type和Subtype的适当组合。

我担心的是保持这些组合的独特性。例如,如果有人跳到表中(而不是先做功课)并尝试添加类型5,子类型3和特定组合的组合,那么dbms就不应该允许它,类似于主键。

所以我想知道是否会愚蠢(因为它感觉就像是)创建一个使用自然键,类型ID和子类型ID的主键。看起来这样做对任何事情都没有帮助,因为自然钥匙最终会使每个条目都具有唯一性,从而使每个条目都有效。

有没有更好的方法来做到这一点?不试图限制这些链接/组合会更简单吗?我是否应该将这两个字段放在票据表中并吸取它?

回答

0

使用UNIQUE constraint以确保类型和子类型的组合是唯一的,然后为您的自然键具有单独的主键。

+0

我的上帝,我甚至不知道存在(不是数据库开发)。现在看看我能否在ERD中表现出来 – Sinaesthetic 2012-07-23 15:54:44

相关问题