Moin!
Also seid ihr der Meinung, dass ein enum mit ca. 1000 Werten Sinn macht um Datenintegrität zu gewährleisten?
Nein, das kann man so nicht sagen.
Wenn sichergestellt ist, dass sich die 1000 Werte des ENUM niemals ändern können - dann ist ENUM gerechtfertigt. Die sieben Wochentage beispielsweise (mo, di, mi, do, fr, sa, so) werden sich niemals ändern, daher dürfen sie als ENUM in der Datenbank gespeichert werden (wenn man das nicht mit einem Datumsfeld machen kann, weil man kein Datum hat).
Ebenso sind Informationen wie "männlich/weiblich", "ja/nein" oder sonstige feste Aufzählungen typische Kandidaten für ENUM.
Aber Dinge, die sich potentiell ändern während der Lebenszeit der Datenbank, sind keine Kandidaten für ENUM.
Deine Hauptstädteliste gehört dazu. Hauptstädte ändern sich mal. Ist doch in Deutschland erst "unlängst" vorgekommen. Weil sich auch Länder ändern können. Ist doch in Deutschland erst "unlängst" vorgekommen.
Eine Aufzählung aller existierenden Hauptstädte ist daher wenig sinnvoll als ENUM. Ebenso wie eine Liste aller Länder der Erde. Weil du die Definition der Datenbank ändern mußt, wenn sich da was ändert, und nicht die Daten.
Oder sollte man lieber eine zusätzliche Tabelle erstellen, die alle gültigen Werte enthält und ich überprüfe mit PHP ob vom Benutzer eingegebene Werte in dieser Tabelle vorhanden sind?
Du kriegst doch vermutlich sowieso nur eine ID aus einer SELECT-Liste (wobei 1000 Wahlmöglichkeiten für SELECT deutlich zu lang ist).
- Sven Rautenberg
"Love your nation - respect the others."