Problem
Inventar in losen Listen wird schnell unübersichtlich: Angaben wiederholen sich, Schreibweisen weichen voneinander ab, und die Frage „Wer hat gerade welches Gerät?“ lässt sich nur mühsam beantworten.
Datenmodell
Das Modell trennt Stammdaten sauber voneinander und verbindet sie über Schlüssel. Die Darstellung ist vereinfacht; ein vollständiges ER-Diagramm folgt.
mitarbeiter
- PK mitarbeiter_id
- …
zuordnung
- PK zuordnung_id
- FK mitarbeiter_id
- FK geraet_id
- …
geraet
- PK geraet_id
- FK modell_id
- …
modell
- PK modell_id
- FK hersteller_id
- FK geraetetyp_id
- …
hersteller
- PK hersteller_id
- …
geraetetyp
- PK geraetetyp_id
- …
Tabellen
- Mitarbeiter – Personen, denen Geräte zugeordnet werden
- Geräte – einzelne, konkret vorhandene Geräte
- Gerätetypen – zum Beispiel Notebook oder Monitor
- Hersteller
- Modelle – verbinden Hersteller und Gerätetyp
- Zuordnungen – welches Gerät bei welcher Person ist
Beziehungen
- hersteller 1 ── n modell
- geraetetyp 1 ── n modell
- modell 1 ── n geraet
- mitarbeiter 1 ── n zuordnung n ── 1 geraet
SQL
-- Vereinfachter Auszug zur Veranschaulichung
CREATE TABLE modell (
modell_id INT AUTO_INCREMENT PRIMARY KEY,
bezeichnung VARCHAR(100) NOT NULL,
hersteller_id INT NOT NULL,
geraetetyp_id INT NOT NULL,
FOREIGN KEY (hersteller_id) REFERENCES hersteller (hersteller_id),
FOREIGN KEY (geraetetyp_id) REFERENCES geraetetyp (geraetetyp_id)
);Administration
Die Datenbank läuft auf MariaDB. Für Schema, Abfragen und Datenpflege verwende ich DBeaver.
Screenshots
Erkenntnisse
Ein gutes Datenmodell entsteht vor der ersten Tabelle. Je sauberer die Entitäten getrennt sind, desto einfacher werden später die Abfragen.