***********************************************************
***********************************************************
Andreas Stern: "Keine Angst vor Microsoft Access!"
SQL-Befehle zur Erstellung der Datenbank "Firma" V601
11.2.2019
www.andreasstern.de
***********************************************************
***********************************************************


***********************************************************
Mit den folgenden Befehlen werden zwar die Fremdschlsselspalten
schon angelegt - zunchst werden aber noch KEINE Beziehungen
zwischen den Tabellen hergestellt!!
***********************************************************

CREATE TABLE tblAufstatus
(
    ast_id             COUNTER               NOT NULL,
    ast_bezeichnung    TEXT(30)              NOT NULL,
    ast_nummer         LONG                  NULL    ,
    CONSTRAINT pk_tblaufstatus PRIMARY KEY (ast_id)
);

CREATE TABLE tblMengeneinheit
(
    men_id             COUNTER               NOT NULL,
    men_bezeichnung    TEXT(30)              NOT NULL,
    CONSTRAINT pk_tblmengeneinheit PRIMARY KEY (men_id)
);

CREATE TABLE tblMitarbeiter
(
    mit_id             COUNTER               NOT NULL,
    mit_name           TEXT(50)              NOT NULL,
    mit_vorname        TEXT(50)              NULL    ,
    mit_gebdatum       DATETIME              NULL    ,
    mit_kontakt        TEXT(255)             NULL    ,
    mit_bemerkung      MEMO                  NULL    ,
    CONSTRAINT pk_tblmitarbeiter PRIMARY KEY (mit_id)
);

CREATE TABLE tblKontakttyp
(
    ktyp_id            COUNTER               NOT NULL,
    ktyp_name          TEXT(50)              NOT NULL,
    CONSTRAINT pk_tblkontakttyp PRIMARY KEY (ktyp_id)
);

CREATE TABLE tblKunde
(
    kun_id             COUNTER               NOT NULL,
    kun_name           TEXT(50)              NOT NULL,
    kun_vorname        TEXT(50)              NULL    ,
    kun_bemerkung      MEMO                  NULL    ,
    CONSTRAINT pk_tblkunde PRIMARY KEY (kun_id)
);

CREATE TABLE tblMaterialart
(
    mat_id             COUNTER               NOT NULL,
    men_id_f           LONG                  NOT NULL,
    mat_name           TEXT(255)             NOT NULL,
    mat_preis          CURRENCY              NULL    ,
    mat_bemerkung      MEMO                  NULL    ,
    CONSTRAINT pk_tblmaterialart PRIMARY KEY (mat_id)
);

CREATE TABLE tblKundenauftrag
(
    kauf_id            COUNTER               NOT NULL,
    kun_id_f           LONG                  NOT NULL,
    ast_id_f           LONG                  NOT NULL,
    kauf_datum         DATETIME              NOT NULL,
    kauf_nummer        TEXT(255)             NULL    ,
    kauf_beschreibung  TEXT(255)             NULL    ,
    kauf_von           DATETIME              NULL    ,
    kauf_bis           DATETIME              NULL    ,
    kauf_bemerkung     MEMO                  NULL    ,
    CONSTRAINT pk_tblkundenauftrag PRIMARY KEY (kauf_id)
);

CREATE TABLE tblKauf_Mat
(
    kaufmat_id         COUNTER               NOT NULL,
    mat_id_f           LONG                  NOT NULL,
    kauf_id_f          LONG                  NOT NULL,
    kaufmat_menge      Single                NULL    ,
    kaufmat_bemerkung  MEMO                  NULL    ,
    CONSTRAINT pk_tblkauf_mat PRIMARY KEY (kaufmat_id)
);

CREATE TABLE tblKauf_Mit
(
    kaufmit_id         COUNTER               NOT NULL,
    mit_id_f           LONG                  NOT NULL,
    kauf_id_f          LONG                  NOT NULL,
    kaufmit_von        DATETIME              NULL    ,
    kaufmit_bis        DATETIME              NULL    ,
    kaufmit_bemerkung  MEMO                  NULL    ,
    CONSTRAINT pk_tblkauf_mit PRIMARY KEY (kaufmit_id)
);

CREATE TABLE tblKontakt
(
    kon_id             COUNTER               NOT NULL,
    ktyp_id_f          LONG                  NOT NULL,
    kun_id_f           LONG                  NOT NULL,
    kon_kontakt        TEXT(255)             NULL    ,
    kon_bemerkung      MEMO                  NULL    ,
    CONSTRAINT pk_tblkontakt PRIMARY KEY (kon_id)
);


***********************************************************
JETZT werden die Beziehungen hergestellt, d.h. jetzt wird
festgelegt, welcher Fremdschlssel sich auf welchen
Primrschlssel bezieht!
***********************************************************

ALTER TABLE tblMaterialart
    ADD CONSTRAINT tblMengeneinheittblMaterialart FOREIGN KEY  (men_id_f)
       REFERENCES tblMengeneinheit (men_id);

ALTER TABLE tblKundenauftrag
    ADD CONSTRAINT tblKundetblKundenauftrag FOREIGN KEY  (kun_id_f)
       REFERENCES tblKunde (kun_id);

ALTER TABLE tblKundenauftrag
    ADD CONSTRAINT tblAufstatustblKundenauftrag FOREIGN KEY  (ast_id_f)
       REFERENCES tblAufstatus (ast_id);

ALTER TABLE tblKauf_Mat
    ADD CONSTRAINT tblMaterialarttblKauf_Mat FOREIGN KEY  (mat_id_f)
       REFERENCES tblMaterialart (mat_id);

ALTER TABLE tblKauf_Mat
    ADD CONSTRAINT tblKundenauftragtblKauf_Mat FOREIGN KEY  (kauf_id_f)
       REFERENCES tblKundenauftrag (kauf_id);

ALTER TABLE tblKauf_Mit
    ADD CONSTRAINT tblMitarbeitertblKauf_Mit FOREIGN KEY  (mit_id_f)
       REFERENCES tblMitarbeiter (mit_id);

ALTER TABLE tblKauf_Mit
    ADD CONSTRAINT tblKundenauftragtblKauf_Mit FOREIGN KEY  (kauf_id_f)
       REFERENCES tblKundenauftrag (kauf_id);

ALTER TABLE tblKontakt
    ADD CONSTRAINT tblKontakttyptblKontakt FOREIGN KEY  (ktyp_id_f)
       REFERENCES tblKontakttyp (ktyp_id);

ALTER TABLE tblKontakt
    ADD CONSTRAINT tblKundetblKontakt FOREIGN KEY  (kun_id_f)
       REFERENCES tblKunde (kun_id);

