[Seasar-user:9507] Re: [dbflute]同じテーブルへ複数の外部キーをもつときのビルドエラー

Yu Tagaya [E-MAIL ADDRESS DELETED]
2007年 7月 27日 (金) 13:45:11 JST


久保さん
多加谷です。

おっしゃる通り、テーブル定義がおかしいですね。
お忙しいところお騒がせしました。

> 久保です。
>
>> 1つのテーブルが同じテーブルへ複数の外部キーを
>> もつときに、dbfluteが生成するbsentityのソースコードに
>> 重複部分が現れ、ビルドが通りません。
>> バージョンは0.5.3です。
>
> DBFluteは、通常
>
> 1つのテーブルが同じテーブルへ複数の外部キーをもつ場合
> 互いのColumn名を識別子に入れて生成しますので、
> 重複してCompileErrorになることはありません。
>
> BOOK
>  BOOK_ID (PK)
>  AAA_AUTHOR_ID (FK to AUTHOR)
>  BBB_AUTHOR_ID (FK to AUTHOR)
>
> AUTHOR
>  AUTHOR_ID (PK)
>
> ↓↓↓
>
> FKの識別子:
>  AuthorByAaa
>  AuthorByBbb
>
> ですが、
>
>>
>> ALTER TABLE VisitReservation ADD CONSTRAINT
>> AppliUser_VisitReservation_ModUserId
>>
>>     FOREIGN KEY (AppliUserId)
>>
>>     REFERENCES AppliUser(AppliUserId)
>>
>> go
>>
>>
>>
>> ALTER TABLE VisitReservation ADD CONSTRAINT
>> AppliUser_VisitReservation_RegUserId
>>
>>     FOREIGN KEY (AppliUserId)
>>
>>     REFERENCES AppliUser(AppliUserId)
>>
>> go
>
> こちらを見ると
>
> FK制約名が ModUserId と RegUserId と別になっていますが、
> 実際にFKに利用している列が互いに同じ列を利用しています。
> つまり、同じ内容のFKの制約が2つ存在することになります。
>
> なのでこれは
>
> FOREIGN KEY (ModUserId) REFERENCES AppliUser(AppliUserId)
> FOREIGN KEY (RegUserId) REFERENCES AppliUser(AppliUserId)
>
> の間違いではないのでしょうか?
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 




Seasar-user メーリングリストの案内