Vinzenz Mai: Tabellenstruktur/Konzeptfrage

Beitrag lesen

Hallo,

» ein Produkt kann es bei mehreren Märkten geben,
» ein Markt kann mehrere Produkte führen,
» => das ist eine n:m-Beziehung, die Du in MySQL mit einer Beziehungstabelle
»    umsetzen solltest.

Also war meine Vermutung gar nicht so verkehrt. Nur wie sieht so eine Tabelle aus?

Du hast nicht zufällig 1, 2 Beispiele ausser einem Link auf das Handbuch?

Beispiele findest Du zum Beispiel im Artikel Fortgeschrittene Jointechniken in SELFHTML aktuell: Bestellungen_Oktober, Vorteilsclub sind beides solche Beziehungstabellen.

Woher weiß ich welche Engine mein MySQL benutzt? Bis jetzt wusste ich nicht einmal, dass es mehrere gibt ;)

Insbesondere bei Shared Hosting hat man oft keine Auswahl, da gibt's oft nur MyISAM.

Also nur eine Tabelle mit den Spalten ID-Markt und ID-Produkt?
Und wenn ein Produkt in mehreren Märkten verfügbar ist, trage ich es mehrmals mit der jeweiligen ID ein?

Richtig.

z.B. (mit den Beispieldaten aus dem OP mit "Tante Emma Laden"...)
+------------+-----------+
| id_product | id_market |
+------------+-----------+
| 1          | 6         |
+------------+-----------+
| 1          | 7         |
+------------+-----------+

Wie muss dann die Struktur der Tabelle aussehen? Index? Spaltentypen?
Oder reicht eine Tabelle mit 2 Integer-Spalten?

Du solltest für Fremdschlüsselspalten den gleichen Datentyp verwenden, wie in der Tabelle, in der die Spalte Träger des Primärschlüssels ist.

Wenn das gleiche Produkt nur einmal dem gleichen Markt zugeordnet werden kann, so solltest Du auf jeden Fall einen eindeutigen Index für die Spaltenkombination verwenden. Du könntest diesen Index auch als Primärschlüssel verwenden, Du kannst auch eine künstliche Spalte für den Primärschlüssel nehmen.

Freundliche Grüße

Vinzenz