在表中强制执行外键“组”完整性而不创建冗余

时间:2013-06-13 10:37:29

标签: sql sql-server-2008 normalization referential-integrity

(我正在使用SQL Server 2008 R2,但我不确定这很重要)

如果我有以下“基础”表:

SettingTypeCategory  
- SettingTypeCategoryId (PK)  
- CategoryName

SettingType  
- SettingTypeId (PK)  
- SettingTypeCategoryId (FK)  
- SettingName

我想创建多个“自定义”设置和类别,如下所示:

CustomSettingTypeCategory
- CustomSettingTypeCategoryId (PK)
- SettingTypeCategoryId (FK)
- CustomCategoryName

CustomSettingType  
- CustomSettingTypeId (PK)  
- CustomSettingTypeCategoryId (FK)
- SettingTypeId (FK)  
- CustomSettingValue

编辑:

确保具有相同CustomSettingTypeCategoryId的所有CustomSettingType与CustomSettingTypeCategory.SettingTypeCategoryId具有相同的SettingTypeCategoryId(FK to SettingType.SettingTypeCategoryId)的最佳方法是什么?

我可以将一个SettingTypeCategoryId添加到CustomSettingType表中,并将一个组合的FK添加到CustomSettingTypeCategory表中,但这种方法让我有点畏缩,因为它是多余的,你知道CustomSetting属于哪个类别通过它与SettingType的FK关系,但其他比使用触发器我没有看到任何其他方法。

0 个答案:

没有答案