2016-04-30 11 views
0

私は、メニューテーブルとWinePriceテーブルの間にSSMSで関係を作成しようとしています。私はリンクテーブル(MenuContents)を介してこれをしようとしました。しかし、私はMenuContentsテーブルのMenuContentsId(それは一意ではないため)とMenuテーブルのMenuContentsIdの間の関係を把握することはできません。私は物事をより明瞭に保つために、他のテーブルを絵の中に残しました。主キーを使用せずに2つのテーブル間の関係を作成する

Menu:     WinePrice:   MenuContents: 

MenuId(PK)    WinePriceId(PK)  MenuContentsId 
PubId     WineId    WinePriceId 
MenuContentsId   Size 
MenuName    Price 

アイデアは、メニューは、それぞれ別の図示しないテーブル内の特定のワインに関するWinePriceId-により同定、(その価格とサイズに基づいて)同じワインの多くの変形を含むことができることです。多くのMenuContentsIdsには多くのWinePriceIdがあるため、MenuContentsIdをPKにすることはできません。

+1

'MenuId'カラムを' MenuContents'テーブルにも追加できなくなることは何ですか? – freakyhat

+0

あなたは 'MenuContentsId'のように見えます –

+0

あなたの返事をありがとう、私はそれについて考えましたが、私はそれぞれのWinePriceIdに対して同じMenuIdと同じMenuContentsIdを使用する必要はありませんか?それとも、MenuIdの代わりにMenuContentsIdをスワップするのですか? – Nick

答えて

0

私には1つのメニューにたくさんのワインがあるように見えます。多くのワインは多くのメニューに存在します。

リンクテーブルは正しいです、あなたがする必要があるのは、MenuContentsのPKを両方のフィールドの複合体にすることだけです。そうすれば、MenuContent :: MenuIdフィールドは、MenuContents :: WindPriceIdが異なる限り、何度も現れることがあります。

これは、同じWindPriceIdが複数のMenuIdに対して表示されることを意味します。

関連する問題