Datenbanktheorie » MySQL 02 CREATE TABLES
/* <-- zurück zu Zeitintervalle in SQL verarbeiten */

/* MySQL: Tabellen erstellen, die benötigt werden */

/* Tabelle, wo die Zahlen von 0 bis 9 eingefügt werden */

DROP TABLE IF EXISTS zeitintervall_zahlen_0_bis_9;

CREATE TABLE zeitintervall_zahlen_0_bis_9 (
    zahl INT NOT NULL,
    PRIMARY KEY (zahl)
);

/* Tabelle für Tage */

DROP TABLE IF EXISTS zeitintervall_tag;

CREATE TABLE zeitintervall_tag (
    tag DATE NOT NULL,
    PRIMARY KEY (tag),
    KEY (tag)
);

/* Tabelle für sortierte Zeitintervalle */

DROP TABLE IF EXISTS zeitintervall_sortiert;

CREATE TABLE zeitintervall_sortiert (
    row_id INT NOT NULL AUTO_INCREMENT,
    fallnr INT NOT NULL,
    beginn DATETIME NOT NULL,
    ende DATETIME NOT NULL,
    next_beginn DATETIME,
    PRIMARY KEY (fallnr, beginn, ende),
    UNIQUE (row_id),
    KEY (fallnr, row_id, beginn)
);

/* Tabelle für Gesamt-Intervalle und Lücken zwischen diesen */

DROP TABLE IF EXISTS zeitintervall_gesamt_und_luecken;

CREATE TABLE zeitintervall_gesamt_und_luecken (
    fallnr INT NOT NULL,
    beginn DATETIME NOT NULL,
    beginntag DATE,
    ende DATETIME NOT NULL,
    endetag DATE,
    luecke VARCHAR(1) NOT NULL,
    faktor INT NOT NULL,
    PRIMARY KEY (fallnr, beginn, ende)
);

/* Tabelle für Ergebnis */

DROP TABLE IF EXISTS zeitintervall_ergebnis;

CREATE TABLE zeitintervall_ergebnis (
    fallnr INT NOT NULL,
    tag DATE NOT NULL,
    minuten INT,
    PRIMARY KEY (fallnr, tag)
);