Es gibt ein Projekt, das ich arbeiten muss, die Haupttransaktionstabelle und einige Untertransaktionstabellen namens Provider. Jeder Anbieter hat eine eigene Tabelle. Die Haupttabelle speichert nur den Betrag (wie auch die Untertabelle), das Datum und einige wichtige Daten, auch die Referenz-ID der Untertabelle. Ich möchte Sub Tabellen basierend auf Anbieter ID zu verbinden. Wenn die Dinge unordentlich werden können, kann ich Tabellennamen als assoziatives Array behalten. Was mich verwirrt, ist, dass die Tabelle jedes Anbieters einen anderen Primärschlüsselnamen hat.Beitreten mehr als 2 Tabellen basierend auf Wert in Mysql
Provider-Tabellen sind ziemlich identisch mit Ausnahme einiger Spalten. Was ich wirklich versuche zu erreichen, ist eine Suche in allen diesen 3 Tabellen als eine.
Eine andere Frage, ist dies eine dumme Idee, wenn ja, welcher Ansatz besser wäre? Tägliche 400-500 Datensätze werden erwartet. Beachten Sie, dass in Zukunft weitere Provider-Tabellen hinzugefügt werden können. Diese Struktur wurde von jemandem entwickelt, der erfahrener ist als ich. Ich konnte niemanden davon überzeugen, dass das schlecht ist.
Transaction
+-----+-----+-----+-----+
| id | ref | prv | date|
+-----+-----+-----+-----+
| 1 | 4 | 2 | .. |
+-----+-----+-----+-----+
| 2 | 4 | 3 | .. |
+-----+-----+-----+-----+
| 3 | 5 | 2 | .. |
+-----+-----+-----+-----+
| 4 | 7 | 1 | .. |
+-----+-----+-----+-----+
| 5 | 22 | 3 | .. |
+-----+-----+-----+-----+
Providers (prv value)
+-----+---------------+-----+
| pID | providerName | .. |
+-----+---------------+-----+
| 1 | providerA | .. |
+-----+---------------+-----+
| 2 | providerB | .. |
+-----+---------------+-----+
| 3 | providerC | .. |
+-----+---------------+-----+
p_providerA (ref value)
+-----+--------+------+-----+
| aID | amount | name | .. |
+-----+--------+------+-----+
| 1 | 90.20 | alf | .. |
+-----+--------+------+-----+
| 2 | 70.00 |willie| .. |
+-----+--------+------+-----+
| 3 | 43.10 | kate | .. |
+-----+--------+------+-----+
p_providerB (ref value)
+-----+--------+------+-----+
| bID | amount | name | .. |
+-----+--------+------+-----+
| 3 | 65.20 | jane | .. |
+-----+--------+------+-----+
| 4 | 72.00 | al | .. |
+-----+--------+------+-----+
| 5 | 84.10 | bundy| .. |
+-----+--------+------+-----+
p_providerC (ref value)
+-----+--------+------+-----+
| bID | amount | name | .. |
+-----+--------+------+-----+
| 3 | 10.20 | mike | .. |
+-----+--------+------+-----+
| 4 | 40.00 | kitt | .. |
+-----+--------+------+-----+
| 6 | 27.60 | devon| .. |
+-----+--------+------+-----+
Erwartetes Ergebnis
+-----+-----+-----+-----+----+--------+------+-----+
| id | ref | prv | date| | | | |
+-----+-----+-----+-----+----+--------+------+-----+
| 1 | 4 | 2 | .. | 4 | 72.00 | al | .. | (from prv. b)
+-----+-----+-----+-----+----+--------+------+-----+
| 2 | 4 | 3 | .. | 4 | 40.00 | kitt | .. | (from prv. c)
+-----+-----+-----+-----+----+--------+------+-----+
Wissen Sie, dass jeder Anbieter eine andere Tabelle hat? – scaisEdge
fügen Sie bitte Beziehungen zwischen Tabellen hinzu. wie, Anbieter [einer zu vielen] Subprovider. 'transaction [viele zu viele] Provider ' die nicht intuitive Art der Benennung ist zu vermeiden, die Frage zu folgen -)) – marmeladze
Ja, jeder Anbieter behält seine eigenen Transaktionsdaten, und man behält Referenzen zu diesen. – siniradam