Hallo!
Ich hab eine Frage wie ich 2 MySQL Tabellen am besten miteinander verknüpfen soll.
Ich habe eine Tabelle A in der, je nach Situation, Märkte gespeichert oder entfernt werden.
Die Tabelle hat mehrere Spalten, darunter Name, Anschrift... , eine ID.
Ich habe eine Tabelle B in der Produkte eingetragen und ggf. wieder entfernt werden.
Ebenfalls mit mehreren Spalten: Name, Hersteller... , ID.
Die Produkte sollen beim Eintragen verschiedenen Märkten zugeordnet werden.
Z.B. "Quark" mit ID 1 aus der Tabelle B gibt es im "Tante Emma Laden" mit der ID 6 und bei "Steffens Eck" mit der ID 7 aus der Tabelle A.
Wenn ein Markt aus Tabelle A gelöscht wird, soll auch dessen Zuordnung bei den Produkten entfernt werden.
Meine Frage ist, wie ich die Zuordnung am besten speichern soll?
Sollte ich in der Produktetabelle eine Spalte anlegen in der sämtliche verfügbaren Märkte kommasepariert gelistet sind?
Das dürfte mir Probleme machen wenn ich einen Markt lösche und dann jedes Produkt nach dessen Zuordnung durchsuchen muss um diese ebenfalls zu ändern.
Daher habe ich überlegt eine dritte Tabelle anzulegen in der die Zuordnung geregelt wird.
Nur wie muss die Struktur der Tabelle aussehen?
Da die Anzahl der Märkte und Produkte varriert, kann ich beides nicht als Spalte nehmen.
Meine Idee ist jetzt eine Tabelle C mit 2 Spalten.
Eine Spalte mit der ID vom Markt oder des Produkts und eine Spalte wieder mit einer kommaseparierten Liste des Gegenstücks.
Das Problem dabei ist aber, dass ich in dem Fall immer die komplette Tabelle durchsuchen muss wenn ich einen Artikel oder einen Markt lösche um die Zuordnungen bei allen anderen Märkten oder Artikeln entsprechend zu ändern.
Komplizierter wird es dann noch, wenn ich einen Markt lösche, ein Produkt dadurch ohne Zuordnung dasteht und dashalb ebenfalls gelöscht werden muss.
Ich hoffe ich hab mich verständlich ausgedrückt.
Wie löst man sowas also in der Praxis am besten?
Danke für Hilfe!
Grüße, Matze