Hallo,
beim Entwurf des DB Designs kann man das Verbinden von Tabellen
wahlweise über die IDs (die sich per auto_increment ergeben) oder über irgendwelche Strings realisieren.
Beispiel für String: Ich habe eine Kunden-Kontakttabelle, in die ich den Namen des Kunden aus der Kundentabelle eintrage. Beim JOIN verbinde ich dann die Kontakttabelle mit der Kundentabelle über den Kundennamen.
Beispiel für ID: Ich trage in die Kontaktabelle die ID des Kunden ein und nutze diese beim JOIN zum Verbinden.
Das String Verfahren hat natürlich den Nachteil, dass ich dann, wenn sich der Kundenname ändert, diesen auch in der Kontakttabelle ändern muss.
Das ID Verfahren hat den Nachteil, dass dann, wenn eine der Tabellen korrupt ist und kein Backup machbar ist, keine Verbindung über die IDs mehr hergestellt werden kann, weil sich u. U. für denselben Kunden eine völlig neue ID ergeben kann (wenn man auto_increment nutzt.
Was ist denn hier die Empfehlung der DB Experten?
beim Entwurf des DB Designs kann man das Verbinden von Tabellen
wahlweise über die IDs (die sich per auto_increment ergeben) oder über irgendwelche Strings realisieren.
Beispiel für String: Ich habe eine Kunden-Kontakttabelle, in die ich den Namen des Kunden aus der Kundentabelle eintrage. Beim JOIN verbinde ich dann die Kontakttabelle mit der Kundentabelle über den Kundennamen.
Beispiel für ID: Ich trage in die Kontaktabelle die ID des Kunden ein und nutze diese beim JOIN zum Verbinden.
Das String Verfahren hat natürlich den Nachteil, dass ich dann, wenn sich der Kundenname ändert, diesen auch in der Kontakttabelle ändern muss.
Das ID Verfahren hat den Nachteil, dass dann, wenn eine der Tabellen korrupt ist und kein Backup machbar ist, keine Verbindung über die IDs mehr hergestellt werden kann, weil sich u. U. für denselben Kunden eine völlig neue ID ergeben kann (wenn man auto_increment nutzt.
Was ist denn hier die Empfehlung der DB Experten?
Kommentar