diff --git a/pmv-base.sql b/pmv-base.sql new file mode 100644 index 0000000..4c7d990 --- /dev/null +++ b/pmv-base.sql @@ -0,0 +1,111 @@ +CREATE DATABASE pmv; + +CREATE TABLE beitrag ( + mitgliednr int(11) unsigned NOT NULL, + beitrag decimal(10,2) DEFAULT NULL, + reduziert tinyint(1) NOT NULL DEFAULT 0, + reduziert_bis date DEFAULT NULL, + mahnstatus tinyint(3) NOT NULL DEFAULT 0, + mahndatum date DEFAULT NULL, + lastschrift tinyint(1) NOT NULL DEFAULT 0, + letztebuchung date DEFAULT NULL, + letzteueberweisung date DEFAULT NULL, + bemerkung varchar(80) DEFAULT NULL, + PRIMARY KEY (mitgliednr), + CONSTRAINT fk_beitrag_mitglied FOREIGN KEY (mitgliednr) REFERENCES mitglied (nr) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE buchung ( + id int(11) unsigned NOT NULL AUTO_INCREMENT, + mitgliednr int(11) unsigned NOT NULL, + buchungsdatum date NOT NULL, + soll decimal(10,2) DEFAULT NULL, + ist decimal(10,2) DEFAULT NULL, + abrechnungsjahr year(4) DEFAULT NULL, + PRIMARY KEY (id), + KEY ix_mitgliednr (mitgliednr), + KEY ix_datum (buchungsdatum), + CONSTRAINT fk_buchung_mitglied FOREIGN KEY (mitgliednr) REFERENCES mitglied (nr) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE bundesland ( + ls tinyint(2) unsigned zerofill NOT NULL, + bez_amtlich varchar(30) NOT NULL, + bezeichnung varchar(30) NOT NULL, + kuerzel char(2) NOT NULL, + PRIMARY KEY (ls), + UNIQUE KEY ix_kuerzel (kuerzel) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE gemeinde ( + ags char(8) NOT NULL, + bezeichnung varchar(60) NOT NULL, + plz mediumint(5) unsigned zerofill DEFAULT NULL, + lat decimal(6,4) DEFAULT NULL, + lon decimal(7,4) DEFAULT NULL, + flaeche float DEFAULT NULL, + PRIMARY KEY (ags) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE gliederung ( + gliederung_id smallint(5) unsigned NOT NULL, + kuerzel varchar(8) NOT NULL, + bezeichnung varchar(40) NOT NULL, + PRIMARY KEY (gliederung_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE global ( + id smallint(5) unsigned NOT NULL, + globname varchar(20) NOT NULL, + datentyp enum('Integer','Float','Decimal','String','Boolean','Date') DEFAULT NULL, + beschreibung varchar(80) DEFAULT NULL, + wert text DEFAULT NULL, + PRIMARY KEY (id), + KEY ix_globname (globname) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE konto ( + id int(11) unsigned NOT NULL AUTO_INCREMENT, + mitgliednr int(11) unsigned NOT NULL, + system varchar(20) DEFAULT NULL, + benutzername varchar(20) DEFAULT NULL, + PRIMARY KEY (id), + KEY fk_konto_mitglied (mitgliednr), + CONSTRAINT fk_konto_mitglied FOREIGN KEY (mitgliednr) REFERENCES mitglied (nr) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE mitglied ( + nr int(11) unsigned NOT NULL, + vorname varchar(40) NOT NULL, + nachname varchar(40) NOT NULL, + geburtsdatum date NOT NULL, + email varchar(80) DEFAULT NULL, + telefon varchar(20) DEFAULT NULL, + nickname varchar(32) DEFAULT NULL, + strasse varchar(40) DEFAULT NULL, + plz mediumint(5) DEFAULT NULL, + ort varchar(40) DEFAULT NULL, + staatsang varchar(2) NOT NULL COMMENT 'ISO2-Kürzel', + eintrittsdatum date NOT NULL, + austrittsdatum date DEFAULT NULL, + schwebend tinyint(1) NOT NULL DEFAULT 1, + stimmberechtigt tinyint(1) DEFAULT 0, + PRIMARY KEY (nr), + KEY ix_nachname (nachname), + KEY ix_nickname (nickname) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE wahl ( + id smallint(5) unsigned NOT NULL, + kuerzel varchar(8) NOT NULL, + bezeichnung varchar(40) NOT NULL, + wahltag date NOT NULL, + PRIMARY KEY (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE wahlkreis ( + wahl_id smallint(5) unsigned NOT NULL, + nr smallint(5) unsigned NOT NULL, + bezeichnung varchar(60) NOT NULL, + PRIMARY KEY (wahl_id,nr) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;