Ich habe einen Tisch für Plätze in einem Veranstaltungsort, aber es gibt mehrere Veranstaltungsorte. Ich könnte einen langen Tisch mit einer ID für jeden Veranstaltungsort neben jedem Sitzplatz erstellen, aber das könnte einen 2000 langen gemischten Tisch mit Veranstaltungsorten und Sitzplätzen ergeben. Also dachte ich, ich würde für jeden Veranstaltungsort einen Tisch mit eigenen Sitzplätzen schaffen. Wie zum Beispiel:Wie wähle ich eine Tabelle aus einer anderen Tabellenspalte?
tickets
id | venue_name | seat_id
venueA
seat_id | section | row | seat_number
So würde Ich mag den Ort Tisch aus venue_name ("venueA") und der seat_id auszuwählen. Wie
SELECT seat_id from (select venue from tickets(venue_name));
Was ist für einen Ort der seat_id zu erfassen Ich versuche, ich weiß, so die Sektion, Reihen- und Sitz angefordert wird. Die Informationen zu Abschnitt, Reihe und Sitz sowie die Anzahl der Sitzplätze können für jeden Veranstaltungsort unterschiedlich sein.
Ich muss in der Lage sein, einen Sitz in VenueA zu identifizieren, während das getrennt von dem gleichen Sitz in VenueB bleiben.
Wenn das Sinn macht. Dies ist mein erster Ausflug in das Sql jenseits von einfachem Design und Schnittstellen zu anderen Menschen. Insbesondere verwende ich postgresql.
Können Sie Beispieldaten und erwartetes Ergebnis hinzufügen. –
Warum teilen Sie es nicht in Tabellen wie: Ort, Sitz, Ticket, Film und verwenden Sie dann grundlegende Fremdschlüssel - Primärschlüssel Beziehungen? Wie ticket sollte nicht einen Veranstaltungsort Namen, sondern eine Veranstaltungsort-ID (Fremdschlüssel) und der Name des Veranstaltungsortes sollte in der Veranstaltungsort-Tabelle sein –
Eine separate Tabelle für eine andere Klasse zu verwenden, die ansonsten wie eine bestehende ist, ist selten eine gute Idee. Fügen Sie einfach eine Spalte "venice_id" hinzu und machen Sie es fertig.Zwei oder mehr Tabellen in einer Datenbank mit identischer Struktur sind fast immer eine entartete De-Optimierung. – wallyk