Tom: INDEX und UNIQUE KEY um Feld Kombis zu verhindern

Beitrag lesen

Hello,

Gelöst habe ich das so:

CREATE TABLE mytest (
id INT( 10 ) NOT NULL AUTO_INCREMENT ,
first VARCHAR( 250 ) NOT NULL ,
last VARCHAR( 250 ) NOT NULL ,
city VARCHAR( 250 ) NOT NULL ,
country VARCHAR( 250 ) NOT NULL ,
PRIMARY KEY ( id ),
UNIQUE KEY mykey (first,last)
);

Man lernt bekanntlich am meisten, wenn man die Fragen von anderen beantworet. Ich will es also acuh mal veruchen ;-)

Das sieht schon sehr gut aus. Nur würde ich nicht soviel Platz verschwenden.
MWn wird der Index über die Felder in der vollen Breite angelegt, während die Felder selber nur soviel Platz verbrauchen, wie MicroExtents für den Inhalt nötig sind.

Überlege, ob Du wirklich 250 Zeichen haben musst, oder ob die üblichen 35 nicht ausreichen.

b) Was ist der Unterschied zwischen

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

Das Schlüsselwort KEY oder INDEX (Synonyme) ist optional. Wenn der Index nicht UNIQUE sein soll, natürlich nicht, dann braucht man eins von beiden. Die Namensvereinbarung für den KEY ist auch optional. Allerdings kann man nur bei vergebenem Namen die "ORDER BY keyname" Klausel benutzen.

Da es kaum Ressourcen kostet, würde ich immer einen sinnvollen Nanmen vergeben, der auch für Außenstehende plausibel ist. Man kann die Keynames nämlich abfragen und dann zu einer Selectbox zusammenfassen, die man dem User bereitstellt.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau