In diesem Beispiel verwenden wir MySQL 5.0 mit InnoDB-Tabellen, die grundlegenden Konzepte lassen sich jedoch leicht auch auf andere relationale Datenbanken übertragen.
Hier das Skript zur Definition der Tabelle registration
und einiger Beispieldaten:
create database if not exists registration;
use registration;
-- Occurrences
create table if not exists occurrence (
occurrence_key integer unsigned not null auto_increment primary key,
registration_key char(4) not null,
registrant_key char(4) not null,
occurrence_time datetime not null,
vacancies integer unsigned not null,
index showing_registration_key(registration_key),
index showing_registrant_key(registrant_key),
index showing_occurrence_time(occurrence_time),
index showing_vacancies(vacancies)
) engine=InnoDB;
-- Reservations
create table if not exists reservation (
reservation_key integer unsigned not null auto_increment primary key,
occurrence_key integer unsigned not null,
num_reservations tinyint unsigned not null,
customer_name varchar(64) not null,
index reservation_num_reservations(num_reservations),
foreign key(occurrence_key)
references occurrence(occurrence_key)
on update restrict
on delete restrict
) engine=InnoDB;
Für unser Beispiel wird der Zugang zu MySQL durch root
ohne Passwort ermöglicht. Für Produktivsysteme sollte jedoch selbstverständlich ein Passwort vergeben werden.