hi
In der User-Tabelle werden die Werte "first", "last", "city" und "country" erfasst.
Es DÜRFEN gleiche Vornamen und gleiche Nachname vorkommen,
aber NIEMALS darf die KOMBINATION aus Vorname und Nachname ein weiteres Mal vorkommen.
Rudolf Bauer [OK]
Rudolf Meier [OK]
Dominik Bauer [OK]
Dominik Meier [OK]
Rudolf Bauer [NICHT OK !]
(Genau diese Vorname-Nachname Kombi existiert bereits)
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
)
);
Die Fragen zu der Problematik lauten:
a) Ist der CREATE TABLE-Syntax [OK] so wie ich den schrieb, oder sind Fehler darin?
b) Was ist der Unterschied zwischen
UNIQUE (first
,last
)
UNIQUE KEY mykey
(first
,last
)
Erfüllt eines der beiden vielleicht nicht ganz seinen Zweck wie ich es haben möchte?
Sollte ich für meine Weiteren Versuche nur eines der beiden verwenden oder soll ich sie mischen?
Ist eines von den beiden falsch?
c) Die Regel dass sich die Vorname-Nachname Kombi nicht wiederholen dürfen existiert bereits.
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!)
Wie muss ich das definieren im CREATE TABLE Syntax?
Ein UNIQUE KEY besteht bereits (first, last),
also vermute ich, dass ein weiterer (für city, country) nicht erlaubt ist.
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?
Man sagt bei auto_increment Feldern darf kein UNIQUE KEY wert mehr draufgelegt werden.
Schönen Tag noch wünscht
Euer AhANiBoy