2017-09-14 7 views
0

Ich benutze MySQL Workbench, um eine Datenbank für einen Client zu erstellen.Crows Fuß Mysql Beziehungen

In diesem Fall kann ein Ticket viele Nummern haben, aber ein Pool kann viele Tickets haben.

Ich bin mir nicht sicher, ob ich das richtig eingerichtet habe.

Ich kann sehen, dass der Krähenfuß, der die Tabelle "Tickets" mit der Tabelle "TicketNumber" verknüpft, eine Eins-zu-viele-Beziehung hat. Bedeutet dies, dass ein Ticket viele Ticketnummern hat?

Ich habe eine FK in der Tabelle "TicketNumbers" erstellt, die mit der Spalte "ticket_id" als Referenz auf die Tabelle "Tickets" verweist.

Für die Pools habe ich einen FK in der Tabelle "Pools" erstellt, der mit der "pool_id" als Referenz auf die Tabelle "Tickets" verweist. Es scheint, dass der Krähenfuß anzeigt, dass ein Ticket viele Pools haben kann, aber das ist nicht der Fall?

Habe ich das richtig gemacht oder sollte ich die Beziehungen durch Erstellen der FK in den gegenüberliegenden Tabellen invertieren?

Tickets System

Antwort

1

Ich hasse :-)

Die Krähenfüße über GRAPHICAL Dinge zu beantworten mit gezogene Linie zeigen ERKENNEN Beziehung von der einzelnen Linie auf die mehrere (Dreieck oder Krähenfüße) Linie. Dies bedeutet, dass das mit verknüpfte Feld Teil des PRIMARY KEY der empfangenden Tabelle ist.

Eine gestrichelte Linie bedeutet eine NICHT IDENTIFIZIERENDE Beziehung. Bedeutet, dass das verknüpfte Feld NICHT Teil des PRIMÄREN SCHLÜSSELS ist.

In Ihrem Fall sollte die Beziehung von Pools zu Tickets sein, Ihre Beziehung ist umgekehrt und sollte gestrichelt sein (nicht identifizierend).

Die Beziehung zwischen Tickets und TicketNumbers scheint korrekt zu sein. Es ist nicht mein Lieblings-Weg, Dinge zu tun, wie ich finde, die Nummer_id-Feld, um nutzlos zu sein. Ich hätte eine Tabelle mit ticket_id und nur number und beide Felder, um den PRIMARY KEY zu bilden, in welchem ​​Fall die Beziehung IDENTIFYING (durchgezogene Linie) zwischen Tickets und TicketNumbers sein sollte. Das ist mehr Kunst und Wissenschaft und Meinungen werden sich unterscheiden.