***********************************************************
***********************************************************
Andreas Stern: "Keine Angst vor Microsoft Access!"
SQL-Befehle zur Erstellung der Datenbank "Verein" V.401
1.3.2013
www.andreasstern.de
***********************************************************
***********************************************************


***********************************************************
Mit den folgenden Befehlen werden zwar die Fremdschlüsselspalten
schon angelegt - zunächst werden aber noch KEINE Beziehungen
zwischen den Tabellen hergestellt!!
***********************************************************

CREATE TABLE tblMitgliedstyp
(
    mtyp_id             COUNTER               NOT NULL,
    mtyp_name           TEXT(50)              NOT NULL,
    mtyp_bemerkung      MEMO                  NULL    ,
    CONSTRAINT pk_tblmitgliedstyp PRIMARY KEY (mtyp_id)
);

CREATE TABLE tblPlatztyp
(
    ptyp_id             COUNTER               NOT NULL,
    ptyp_bezeichnung    TEXT(50)              NOT NULL,
    CONSTRAINT pk_tblplatztyp PRIMARY KEY (ptyp_id)
);

CREATE TABLE tblTrainer
(
    trainer_id          COUNTER               NOT NULL,
    trainer_name        TEXT(50)              NOT NULL,
    trainer_vorname     TEXT(50)              NULL    ,
    trainer_anschrift   TEXT(255)             NULL    ,
    trainer_telefon     TEXT(30)              NULL    ,
    trainer_bemerkung   MEMO                  NULL    ,
    CONSTRAINT pk_tbltrainer PRIMARY KEY (trainer_id)
);

CREATE TABLE tblWettkampf
(
    wet_id              COUNTER               NOT NULL,
    wet_name            TEXT(50)              NOT NULL,
    wet_datum           DateTime              NULL    ,
    wet_ort             TEXT(50)              NULL    ,
    wet_typ             TEXT(30)              NULL    ,
    wet_bemerkung       MEMO                  NULL    ,
    CONSTRAINT pk_tblwettkampf PRIMARY KEY (wet_id)
);

CREATE TABLE tblPlatz
(
    pla_id              COUNTER               NOT NULL,
    ptyp_id_f           LONG                  NOT NULL,
    pla_bezeichnung     TEXT(50)              NOT NULL,
    pla_bemerkung       MEMO                  NULL    ,
    CONSTRAINT pk_tblplatz PRIMARY KEY (pla_id)
);

CREATE TABLE tblMannschaft
(
    man_id              COUNTER               NOT NULL,
    trainer_id_f        LONG                  NULL    ,
    man_name            TEXT(50)              NOT NULL,
    man_bemerkung       MEMO                  NULL    ,
    CONSTRAINT pk_tblmannschaft PRIMARY KEY (man_id)
);

CREATE TABLE tblMitglied
(
    mit_id              COUNTER               NOT NULL,
    trainer_id_f        LONG                  NULL    ,
    man_id_f            LONG                  NULL    ,
    mit_name            TEXT(50)              NOT NULL,
    mit_vorname         TEXT(50)              NULL    ,
    mit_nummer          TEXT(30)              NULL    ,
    mit_gebdatum        DateTime              NULL    ,
    mit_seitmonat       LONG                  NULL    ,
    mit_seitjahr        LONG                  NULL    ,
    mit_anschrift       TEXT(255)             NULL    ,
    mit_telefon         TEXT(50)              NULL    ,
    mit_bemerkung       MEMO                  NULL    ,
    CONSTRAINT pk_tblmitglied PRIMARY KEY (mit_id)
);

CREATE TABLE tblTraining
(
    training_id         COUNTER               NOT NULL,
    mit_id_f            LONG                  NULL    ,
    pla_id_f            LONG                  NULL    ,
    trainer_id_f        LONG                  NULL    ,
    training_datum      DateTime              NOT NULL,
    training_zeitvon    DateTime              NOT NULL,
    training_zeitbis    DateTime              NULL    ,
    training_bemerkung  MEMO                  NULL    ,
    CONSTRAINT pk_tbltraining PRIMARY KEY (training_id)
);

CREATE TABLE tblBeitrag
(
    bei_id              COUNTER               NOT NULL,
    mit_id_f            LONG                  NOT NULL,
    bei_beitrag         CURRENCY              NOT NULL,
    bei_datum           DateTime              NULL    ,
    bei_vonmonat        LONG                  NOT NULL,
    bei_vonjahr         LONG                  NOT NULL,
    bei_bismonat        LONG                  NOT NULL,
    bei_bisjahr         LONG                  NOT NULL,
    bei_bemerkung       MEMO                  NULL    ,
    CONSTRAINT pk_tblbeitrag PRIMARY KEY (bei_id)
);

CREATE TABLE tblBeitragssatz
(
    satz_id             COUNTER               NOT NULL,
    mtyp_id_f           LONG                  NOT NULL,
    satz_vonmonat       LONG                  NOT NULL,
    satz_vonjahr        LONG                  NOT NULL,
    satz_bismonat       LONG                  NULL    ,
    satz_bisjahr        LONG                  NULL    ,
    satz_betrag         CURRENCY              NOT NULL,
    satz_bemerkung      MEMO                  NULL    ,
    CONSTRAINT pk_tblbeitragssatz PRIMARY KEY (satz_id)
);

CREATE TABLE tblMan_Wet
(
    manwet_id           COUNTER               NOT NULL,
    man_id_f            LONG                  NOT NULL,
    wet_id_f            LONG                  NOT NULL,
    manwet_punkte       Single                NULL    ,
    manwet_platz        LONG                  NULL    ,
    manwet_bemerkung    MEMO                  NULL    ,
    CONSTRAINT pk_tblman_wet PRIMARY KEY (manwet_id)
);

CREATE TABLE tblMit_Training
(
    mittraining_id      COUNTER               NOT NULL,
    training_id_f       LONG                  NOT NULL,
    mit_id_f            LONG                  NOT NULL,
    CONSTRAINT pk_tblmit_training PRIMARY KEY (mittraining_id)
);

CREATE TABLE tblMit_Wet
(
    mitwet_id           COUNTER               NOT NULL,
    wet_id_f            LONG                  NOT NULL,
    mit_id_f            LONG                  NOT NULL,
    mitwet_punkte       Single                NULL    ,
    mitwet_platz        LONG                  NULL    ,
    mitwet_bemerkung    MEMO                  NULL    ,
    CONSTRAINT pk_tblmit_wet PRIMARY KEY (mitwet_id)
);

CREATE TABLE tblMitgliedschaft
(
    mschaft_id          COUNTER               NOT NULL,
    mit_id_f            LONG                  NOT NULL,
    mtyp_id_f           LONG                  NOT NULL,
    mschaft_vonmonat    LONG                  NOT NULL,
    mschaft_vonjahr     LONG                  NOT NULL,
    mschaft_bismonat    LONG                  NULL    ,
    mschaft_bisjahr     LONG                  NULL    ,
    mschaft_bemerkung   MEMO                  NULL    ,
    CONSTRAINT pk_tblmitgliedschaft PRIMARY KEY (mschaft_id)
);

***********************************************************
JETZT werden die Beziehungen hergestellt, d.h. jetzt wird
festgelegt, welcher Fremdschlüssel sich auf welchen
Primärschlüssel bezieht!
***********************************************************

ALTER TABLE tblPlatz
    ADD CONSTRAINT tblPlatztyptblPlatz FOREIGN KEY  (ptyp_id_f)
       REFERENCES tblPlatztyp (ptyp_id);

ALTER TABLE tblMannschaft
    ADD CONSTRAINT tblTrainertblMannschaft FOREIGN KEY  (trainer_id_f)
       REFERENCES tblTrainer (trainer_id);

ALTER TABLE tblMitglied
    ADD CONSTRAINT tblTrainertblMitglied FOREIGN KEY  (trainer_id_f)
       REFERENCES tblTrainer (trainer_id);

ALTER TABLE tblMitglied
    ADD CONSTRAINT tblMannschafttblMitglied FOREIGN KEY  (man_id_f)
       REFERENCES tblMannschaft (man_id);

ALTER TABLE tblTraining
    ADD CONSTRAINT tblMitgliedtblTraining FOREIGN KEY  (mit_id_f)
       REFERENCES tblMitglied (mit_id);

ALTER TABLE tblTraining
    ADD CONSTRAINT tblPlatztblTraining FOREIGN KEY  (pla_id_f)
       REFERENCES tblPlatz (pla_id);

ALTER TABLE tblTraining
    ADD CONSTRAINT tblTrainertblTraining FOREIGN KEY  (trainer_id_f)
       REFERENCES tblTrainer (trainer_id);

ALTER TABLE tblBeitrag
    ADD CONSTRAINT tblMitgliedtblBeitrag FOREIGN KEY  (mit_id_f)
       REFERENCES tblMitglied (mit_id);

ALTER TABLE tblBeitragssatz
    ADD CONSTRAINT tblMitgliedstyptblBeitragssatz FOREIGN KEY  (mtyp_id_f)
       REFERENCES tblMitgliedstyp (mtyp_id);

ALTER TABLE tblMan_Wet
    ADD CONSTRAINT tblMannschafttblMan_Wet FOREIGN KEY  (man_id_f)
       REFERENCES tblMannschaft (man_id);

ALTER TABLE tblMan_Wet
    ADD CONSTRAINT tblWettkampftblMan_Wet FOREIGN KEY  (wet_id_f)
       REFERENCES tblWettkampf (wet_id);

ALTER TABLE tblMit_Training
    ADD CONSTRAINT tblTrainingtblMit_Training FOREIGN KEY  (training_id_f)
       REFERENCES tblTraining (training_id);

ALTER TABLE tblMit_Training
    ADD CONSTRAINT tblMitgliedtblMit_Training FOREIGN KEY  (mit_id_f)
       REFERENCES tblMitglied (mit_id);

ALTER TABLE tblMit_Wet
    ADD CONSTRAINT tblWettkampftblMit_Wet FOREIGN KEY  (wet_id_f)
       REFERENCES tblWettkampf (wet_id);

ALTER TABLE tblMit_Wet
    ADD CONSTRAINT tblMitgliedtblMit_Wet FOREIGN KEY  (mit_id_f)
       REFERENCES tblMitglied (mit_id);

ALTER TABLE tblMitgliedschaft
    ADD CONSTRAINT tblMitgliedtblMitgliedschaft FOREIGN KEY  (mit_id_f)
       REFERENCES tblMitglied (mit_id);

ALTER TABLE tblMitgliedschaft
    ADD CONSTRAINT tblMitgliedstyptblMitgliedschaft FOREIGN KEY  (mtyp_id_f)
       REFERENCES tblMitgliedstyp (mtyp_id);


