Hi,
Die ID könntest Du auch als Autoincrement-Spalte anlegen. Die hätte dann besser keine 0 für gültige IDs.
Begründung?Der ID eines Datensatzes kommt keine semantische Bedeutung zu. Sie dient ausschließlich - oh Wunder ;-) - der Identifikation.
OK, das widerlegt deine Forderung nicht. Ich behaupte aber, es ist egal, ob man mit 0, mit 1 oder mit 42 beginnt.Nein. Die 0 ist klar erkennbar als "ungültige ID" benutzbar.
Ausserdem kann man 0 auch beim INSERT benutzen, wenn man will, dass für eine auto_increment-Spalte der nächste freie Wert eingesetzt wird (auch wenn das Manual empfiehlt, dafür eher NULL zu verwenden).
Und da das definiertes Verhalten darstellt, kann das später durchaus mal problematisch werden, wenn man den Wert 0 in einem INSERT-Statement hat, und auch diesen eingetragen haben will, und nicht den nächsthöheren freien - bspw. dann, wenn man einen Dump einspielt, in dem die auto_increment-IDs in den INSERTs enthalten sind, und diese aber nicht in sortierter Reihenfolge vorliegen.
MfG ChrisB
Light travels faster than sound - that's why most people appear bright until you hear them speak.