2016-04-30 17 views
0

Ich suche eine Beziehung in SSMS zwischen der Menütabelle und der WinePrice-Tabelle zu erstellen. Ich habe versucht, dies über eine Verknüpfungstabelle (MenuContents) zu tun. Allerdings kann ich die Beziehung zwischen MenuContentsId in der MenuContents-Tabelle (wie es nicht eindeutig sein wird) und MenuContentsId in der Menütabelle nicht herausfinden. Ich habe meine anderen Tische aus dem Bild genommen, um die Dinge klarer zu halten.Erstellen einer Beziehung zwischen zwei Tabellen ohne Verwendung eines Primärschlüssels

Menu:     WinePrice:   MenuContents: 

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

Die Idee ist, dass ein Menü viele Variationen des gleichen Wein enthalten (bezogen auf seine Größe und Preis), die jeweils von WinePriceId- identifiziert, die in einem anderen nicht gezeigten Tabelle zu einem bestimmten Wein bezieht. Ich kann MenuContentsId nicht zu einem PK machen, da viele MenuContentsIds viele WinePriceIds haben.

+1

Alles, was Sie daran hindert, die 'MenuId'-Spalte auch in der 'MenuContents'-Tabelle hinzuzufügen? – freakyhat

+0

Sieht so aus, als ob Sie 'MenuContentsId' nicht benötigen –

+0

Danke für Ihre Antwort, ich habe darüber nachgedacht - aber würde das nicht bedeuten, dass ich dieselbe MenuId und dieselbe MenuContentsId für jede einzelne WinePriceId verwenden muss? Oder sprichst du stattdessen MenuId für MenuContentsId? – Nick

Antwort

0

Für mich sieht es so aus, als ob man ein Menü mit vielen Weinen haben möchte. Viele Weine können in vielen Menüs existieren.

Die Verknüpfungstabelle ist korrekt, Sie müssen lediglich den PK von MenuContents aus beiden Feldern zusammensetzen. Auf diese Weise kann jedes MenucContents :: MenuId-Feld mehrmals angezeigt werden, solange MenuContents :: WindPriceId anders ist.

Und es bedeutet, dass die gleiche WindPriceId gegen mehrere MenuIds auftreten kann.

Verwandte Themen