0

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

答えて

0

は、私は最初からちょうど再構築するエンティティ図を終わった、それが働きました。最初のダイアグラムでエラーが発生したかどうか、またはこれがEntity Designerの不具合かどうかはわかりません。