(私は 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 を持つすべての CustomSettingTypes が CustomSettingTypeCategory.SettingTypeCategoryId と同じ SettingTypeCategoryId (SettingType.SettingTypeCategoryId への FK) であることを確認する最善の方法は何ですか?
SettingTypeCategoryId を CustomSettingType テーブルに追加し、CustomSettingTypeCategory テーブルに結合された FK を設定することもできますが、このアプローチは冗長であるため、少しうんざりします。トリガー 私はそれを回避する他の方法は見当たりません。