替代键与自然键

时间:2019-05-23 20:34:55

标签: sql-server primary-key data-modeling composite-key surrogate-key

数据建模新手,请裸露。

我正在创建两个表,如下所示

TABLE [ProductGroups]

 [ProductGroupID]   int PK
 [ProductGroupName] nvarchar(50) 
 [Active]           bit 


TABLE [ProductGroupDetails]

 [ProductGroupDetailID] int PK 
 [ProductCodeID]        int 
 [ProductGroupID]       int  FOREIGN KEY  REFERENCES [ProductGroups](ProductGroupID)
 [ProductCodeLevelID]   int  

表ProductGroupDetails中的ProductCodeID和ProductGroupID列可以一起用作组合主键,但我添加了ProductGroupDetailID列来代替代理主键。

这是正确的方法吗?
我知道拥有不自然的密钥作为PK将有助于适应业务需求。也是

从性能的角度来看,将ProductGroupDetailID上的集群主键与对自然键列ProductCodeID和ProductGroupID的唯一约束结合在一起会带来任何好处。

让我知道是否需要进一步澄清。

0 个答案:

没有答案