You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
4.7 KiB
147 lines
4.7 KiB
CREATE DATABASE pmv;
|
|
USE pmv;
|
|
|
|
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,
|
|
status ENUM('aktiv', 'ruhend', 'ausgetreten') NOT NULL DEFAULT 'aktiv',
|
|
PRIMARY KEY (nr),
|
|
KEY ix_nachname (nachname),
|
|
KEY ix_nickname (nickname)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE amtadresse (
|
|
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
bezeichnung varchar(40) DEFAULT NULL,
|
|
abteilung varchar(40) DEFAULT NULL,
|
|
zusatz varchar(40) DEFAULT NULL,
|
|
strasse varchar(40) DEFAULT NULL,
|
|
plz mediumint(5) DEFAULT NULL,
|
|
ort varchar(40) DEFAULT NULL,
|
|
telefon varchar(20) DEFAULT NULL,
|
|
email varchar(80) DEFAULT NULL,
|
|
bemerkungen varchar(80) DEFAULT NULL,
|
|
PRIMARY key (id),
|
|
KEY ix_bezeichnung (bezeichnung),
|
|
KEY ix_plz (plz)
|
|
);
|
|
|
|
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 versammlung (
|
|
id int(11) unsigned NOT NULL AUTO_INCREMENT,
|
|
bezeichnung varchar(80) NOT NULL,
|
|
datum_von DATE NOT NULL,
|
|
datum_bis DATE,
|
|
ort varchar(40) DEFAULT NULL,
|
|
typ tinyint(3) NOT NULL DEFAULT 1 COMMENT '1=Parteitag, 2=Aufstellung',
|
|
PRIMARY KEY (id),
|
|
KEY ix_versammlungsdatum (datum_von)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
CREATE TABLE wahl (
|
|
id smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
|
kuerzel varchar(8) NOT NULL,
|
|
bezeichnung varchar(40) NOT NULL,
|
|
wahltag date NOT NULL,
|
|
PRIMARY KEY (id),
|
|
KEY ix_wahltag (wahltag)
|
|
) 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;
|
|
|
|
CREATE TABLE session (
|
|
sessionkey CHAR(32) NOT NULL,
|
|
sessionstart TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
|
|
PRIMARY KEY (sessionkey)
|
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8mb4;
|
|
|