diff --git a/.gitignore b/.gitignore index 723ef36..2dd30b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.idea \ No newline at end of file +.idea +db/* \ No newline at end of file diff --git a/db_scripts/README.md b/db_scripts/README.md index 6337559..f56a297 100644 --- a/db_scripts/README.md +++ b/db_scripts/README.md @@ -1,11 +1,12 @@ # Datenbank -## Aufsetzen +## Aufsetzen - SQLite -Zu Beginn sollte die Datenbank heruntergeladen werden [Anleitung](https://mariadb.com/kb/en/getting-installing-and-upgrading-mariadb/). +Erstellen / Verbinden mit der Datenbank +```sqlite3 ../db/test.db``` -Nach der Installation muss auf der Datenbank ein Server definiert werden. Dazu muss eine Systemtabelle des DB-Servers editiert werden. für die Tests gewählte Konfiguration findet sich unter ./create_server.sql weitere Informationen finden sich [unter](https://mariadb.com/kb/en/create-server/). +Tabellen anlegen (nach Verbindung durch *sqlite3* besteht) +```.read create.sql``` - -https://wiki.archlinux.org/title/MariaDB -mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql \ No newline at end of file +In einem Schritt: +```sqlite3 ../db/test.db -init create.sql``` diff --git a/db_scripts/create.sql b/db_scripts/create.sql new file mode 100644 index 0000000..b91c817 --- /dev/null +++ b/db_scripts/create.sql @@ -0,0 +1,62 @@ +CREATE TABLE IF NOT EXISTS mitglied ( + mitglied_id INT NOT NULL PRIMARY KEY, + haushalt VARCHAR(100) NOT NULL, + erweiterter_haushalt VARCHAR(100), + einlage INT NOT NULL, + guthaben INT NOT NULL, + kontoauszuege BOOLEAN NOT NULL, + aktiv BOOLEAN NOT NULL +); + +CREATE TABLE IF NOT EXISTS transaktion_art ( + art_id INT NOT NULL PRIMARY KEY, + art VARCHAR(50) NOT NULL +); + +INSERT INTO transaktion_art(art_id, art) VALUES (1, 'monatlicher_beitrag'); +INSERT INTO transaktion_art(art_id, art) VALUES (2, 'aufladung'); +INSERT INTO transaktion_art(art_id, art) VALUES (3, 'einkauf'); + +CREATE TABLE IF NOT EXISTS transaktion ( + transaktion_id INT NOT NULL PRIMARY KEY, + mitglied_id INT NOT NULL, + art_id INT NOT NULL, + datum DATE NOT NULL, + BETRAG INT NOT NULL, + CONSTRAINT fk_mitglied_transaktion FOREIGN KEY (mitglied_id) REFERENCES mitglied(mitglied_id), + CONSTRAINT fk_art_transaktion FOREIGN KEY (art_id) REFERENCES transaktion_art(art_id) +); + +CREATE TABLE IF NOT EXISTS monatlicher_beitrag ( + monatlicher_beitrag_id INT NOT NULL PRIMARY KEY, + mitglied_id INT NOT NULL, + anfangsdatum DATE NOT NULL, + enddatum DATE NOT NULL, + beitrag INT NOT NULL, + CONSTRAINT fk_mitglied_beitrag FOREIGN KEY (mitglied_id) REFERENCES mitglied(mitglied_id) +); + +CREATE TABLE IF NOT EXISTS mwst ( + mwst_id INT NOT NULL PRIMARY KEY, + prozent INT NOT NULL +); + +INSERT INTO mwst(mwst_id, prozent) VALUES (1, 7); +INSERT INTO mwst(mwst_id, prozent) VALUES (2, 19); + +CREATE TABLE IF NOT EXISTS einheit( + einheit_id INT NOT NULL PRIMARY KEY, + bezeichung VARCHAR(50) NOT NULL +); + +INSERT INTO einheit(menge_id, bezeichnung) VALUES (1, 'stueck'); +INSERT INTO einheit(menge_id, bezeichnung) VALUES (2, 'menge'); + +CREATE TABLE IF NOT EXISTS artikel ( + artikel_id INT NOT NULL PRIMARY KEY, + einheit_id INT NOT NULL, + mwst_id INT NOT NULL, + preis INT NOT NULL, + CONSTRAINT fk_mwst_artikel FOREIGN KEY (mwst_id) REFERENCES mwst(mwst_id), + CONSTRAINT fk_einheit_artikel FOREIGN KEY (einheit_id) REFERENCES einheit(einheit_id) +);