main #1

Open
fdenzer wants to merge 46 commits from mgl_crew/Mitgliederladen:main into main
3 changed files with 71 additions and 7 deletions
Showing only changes of commit d711eef20d - Show all commits

1
.gitignore vendored
View file

@ -1 +1,2 @@
.idea
db/*

View file

@ -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
In einem Schritt:
```sqlite3 ../db/test.db -init create.sql```

62
db_scripts/create.sql Normal file
View file

@ -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)
);