Hallo Erwin !
CREATE TABLE calls
{
-- id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,
zeit TIMESTAMP DEFAULT 'CURRENT_TIME',
next_date DATETIME,
name VARCHAR(30) NOT NULL,
eaz VARCHAR(30) DEFAULT '001',
lieblingsblume VARCHAR(20)
-- PRIMARY KEY(id)
};
Jetzt ruft am 11.11. Annabel auf '-007' an.
Dto Barbara auf '-008'.
Dto Christine auf '-009'.
( Schliesslich ist Fasching ! )
Wie verhindert man jetzt Chistine auf der '008' zurueckzurufen und ihr Orchideen statt Astern mitzubringen ???
Kopiert man dann zu jedem Date die Lieblingsblume vom vorangegangenen ?
DROP TABLE IF EXISTS dates ;
DROP TABLE IF EXISTS blumen;
DROP TABLE IF EXISTS buddies;
CREATE TABLE IF NOT EXISTS buddies
(
id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,
name VARCHAR(30) NOT NULL,
eaz VARCHAR(30) DEFAULT '001',
PRIMARY KEY(id)
);
--
-- Auch das koennte man natuerlich noch in zwei Tabellen aufteilen.
-- In welche und warum ?
--
CREATE TABLE IF NOT EXISTS blumen
(
id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,
name VARCHAR(30) NOT NULL,
ranking INTEGER UNSIGNED NOT NULL,
buddy_id INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(id),
UNIQUE INDEX (id, ranking),
FOREIGN KEY(buddy_id)
REFERENCES buddies(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
CREATE TABLE IF NOT EXISTS dates
(
-- id INTEGER UNSIGNED AUTO_INCREMENT NOT NULL,
zeit TIMESTAMP DEFAULT 'CURRENT_TIME',
next_date DATETIME,
buddy_id INTEGER UNSIGNED NOT NULL,
-- PRIMARY KEY(id),
FOREIGN KEY(buddy_id)
REFERENCES buddies(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
Kennst Du die Martini-Werbung in der George Clooney vor der Tuer bleibt ?
Der hatte wohl seine Datenbank nicht normalisiert und oefter mal verrissen...
Gruesse
HoLger
--
Aus dem Perl Styleguide:
"Choose mnemonic identifiers. If you can't remember what mnemonic means, you've got a problem."
Aus dem Perl Styleguide:
"Choose mnemonic identifiers. If you can't remember what mnemonic means, you've got a problem."