VS2010でEntity Designerを使用してSQL Server 2005用のデータベースを構築する。「モデルからデータベースを生成する」によって生成されたSQLを使用して実際にテーブルを構築しようとすると問題が発生する。テーブルはすべて正しく作成されますが、外部キーの制約を突き止めます。SQL Server 2005 + Entity Designer - 外部キーの制約エラー?
問題の実体がここにレイアウトされています
World:
WORLD_ID [int32] (Primary Key)
Name [String]
Zone:
WORLD_ID [int32] (Primary key, FK on World.WORLD_ID)
ZONE_ID [int32] (Primary key)
Name [String]
Region:
WORLD_ID [int32] (Primary key, FK on Zone.WORLD_ID)
ZONE_ID [int32] (Primary key, FK on Zone.ZONE_ID)
REGION_ID [int32] (Primary key)
Name [String]
生成されたSQLコードのこの部分が問題である:
-- Creating foreign key on [ZONE_ID], [WORLD_ID] in table 'Regions'
ALTER TABLE [dbo].[Regions]
ADD CONSTRAINT [FK_ZoneRegion]
FOREIGN KEY ([ZONE_ID], [WORLD_ID])
REFERENCES [dbo].[Zones]
([ZONE_ID], [WORLD_ID])
ON DELETE NO ACTION ON UPDATE NO ACTION;
エラーはこれです:そこ
参照されているテーブル 'dbo.Zone' の主キーまたは候補キーが存在しません。キー「FK_ZoneRegion」を無視します。私は問題が私の複数列の主キー(WORLD_ID + ZONE_ID + REGION_ID)で、ZONE_IDとWORLD_ID両方が外部キーであることが、そしてWORLD_IDが実際にある、具体的事実とは何かを持っていると仮定しなければならない
また、FKのソースを持つテーブルの外部キー。
ここに私の構造に何か問題がありますか? Zone - > Regionから単一の関連付けをするだけでいいのですか?実際には、World - > RegionとZone - > Regionの2つの関連付けが必要ですか?何が価値があるために
おかげで、 -Dan