私は次のテーブル構造を持っています(実演するために架空のものです):
ArticlePrice
------------
Id (int, identity)
Price (float)
SpecialArticlePrice
-------------------
Id (int, identity)
ArticlePriceId (int, FK to AriclePrice.Id)
SpecialPrice (float)
これらとテーブルの間には、削除制約があります。
Foo
-----
Id (int, identity)
ArticlePriceId (int, NULL, FKto ArticlePrice.Id)
SpecialArticlePriceId (int, NULL, FK to SpecialArticlePrice.Id)
Price (int)
ArticelPrice または SpecialArticlePrice のいずれかが削除される場合に備えて、両方の FK に削除制約を設定したいと思います。Foo レコードも削除する必要があります。(開発者サイトでの) 唯一の契約は、Foo のレコードが 1 つの FK リレーションシップのみを保持することです。
例:
INSERT INTO Foo (ArticlePrice, SpecialArticlePrice, Price) VALUES (13, NULL, 20.0)
INSERT INTO Foo (ArticlePrice, SpecialArticlePrice, Price) VALUES (NULL, 3, 134.25)
このシナリオをどのように解決できますか?
どうもありがとうございました。よろしく、 ダニー