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

SQL · MariaDBBeispiel
-- 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

Screenshot folgt.
Screenshot folgt.

Erkenntnisse

Ein gutes Datenmodell entsteht vor der ersten Tabelle. Je sauberer die Entitäten getrennt sind, desto einfacher werden später die Abfragen.