Ilja: INDEX und UNIQUE KEY um Feld Kombis zu verhindern

Beitrag lesen

yo,

aber NIEMALS darf die KOMBINATION aus Vorname und Nachname ein weiteres Mal vorkommen.

da will ich noch mal nachhaken. was spricht den gegen zwei datensätze in deiner tabelle, die den gleichen vornamen, nachnamen haben, wie zum bespiel Peter Müller ? ich frage deswegen, weil in unseren schönen welt gleiche namen nicht ausgeschlossen sind, zumal du auch einen künstlichen PK angelegt hast.

id INT( 10 ) NOT NULL AUTO_INCREMENT ,

das not null ist hier überflüssig, da du es später zu einem PK deklarierst, welche per definition immer zwei gegenschaften besitzen, not null und unique.

b) Was ist der Unterschied zwischen

UNIQUE (first,last)
         UNIQUE KEY mykey (first,last)

ich würde sagen, im zweiten falle hat das kind einen selbstgewählten namen "mykey", wobei der name in meinen augen nicht sinnvoll gewählt wurde.

Nun soll eine WEITERE (ZUSÄTZLICHE) Regel hinzukommen,
   dass User aus der gleichen Stadt einmalig (UNIQUE) sein müssen.

Neumarkt   Österreich  [OK]
   Neumarkt   Deutschland [OK]
   München    Deutschland [OK]
   Neumarkt   Österreich  [NICHT OK !!]  (Diese Kombi gibt es schon!)

auch hier gilt das gleiche wie bei den namen, warum kann es den nicht ein "kleinniederdorf" in deutschland und in österreich geben ?

d) Noch ein weiterer würde auch für die ID noch hinzukommen.
   ID wird möglicherweise auch nicht auto_increment.
   Wie geht das dann?

nun, dan muss du eben die ensprechende syntax des auto-incemrent weglassen. wenn nun neue datensätze hinzugefügt werden sollen, dann muss das feld ID einen wert bekommen und kan nicht wie bei auto-inccrement leer gelassen werden.

Ilja