# Datenbankdokumentation Dieses Dokument beschreibt das Datenbankschema des netzwerkbasierten Dokumentations- und Verkabelungstools. Die Datenbank ist so entworfen, dass sie: - reale Netzwerkinfrastrukturen exakt abbildet - keine Annahmen über Topologien erzwingt - auch exotische Technologien unterstützt - langfristig erweiterbar bleibt Die Datenbank ist für **Single-User-Betrieb** ausgelegt. --- ## Überblick Die Datenbank lässt sich grob in folgende Bereiche gliedern: 1. Standort- & Gebäude-Struktur 2. Racks & physische Infrastruktur 3. Gerätetypen & Geräte 4. Ports, Module & Verbindungstypen 5. Logische & physische Verbindungen --- ## 1. Standort- & Gebäude-Struktur ### `locations` Repräsentiert einen übergeordneten Standort (z. B. Firmencampus, Außenstelle). **Verwendung** - Oberste organisatorische Ebene - Kann mehrere Gebäude enthalten --- ### `buildings` Ein Gebäude innerhalb eines Standorts. **Verwendung** - Gruppiert Stockwerke - Ermöglicht mehrere Gebäude pro Standort **Beziehung** - Gehört zu genau einem Standort --- ### `floors` Ein Stockwerk innerhalb eines Gebäudes. **Verwendung** - Träger für Stockwerkspläne (SVG) - Gruppiert Räume, Racks und Netzwerkdosen **Besonderheiten** - `svg_path` verweist auf den grafischen Stockwerksplan --- ### `rooms` Ein Raum innerhalb eines Stockwerks. **Verwendung** - Dient zur räumlichen Zuordnung von Netzwerkdosen - Kann im SVG-Plan positioniert werden **Grafische Attribute** - `x`, `y`, `width`, `height` zur visuellen Darstellung im Stockwerks-SVG --- ## 2. Netzwerkdosen ### `network_outlets` Physische Netzwerkdose innerhalb eines Raums. **Verwendung** - Repräsentiert Wand- oder Bodendosen - Kann mehrere Ports besitzen **Grafische Attribute** - `x`, `y` zur Platzierung im Stockwerksplan --- ### `network_outlet_ports` Einzelne Ports einer Netzwerkdose. **Verwendung** - Jeder Port ist ein vollwertiger Verbindungspunkt - Kann direkt mit Geräten, Switches oder Modulen verbunden werden --- ## 3. Racks & physische Infrastruktur ### `racks` Ein Serverschrank oder Netzwerkschrank. **Verwendung** - Befindet sich auf einem Stockwerk - Enthält Geräte --- ## 4. Gerätetypen & Geräte ### `device_types` Definiert eine Gerätevorlage. **Verwendung** - Bestimmt Aussehen, Portanzahl und Portpositionen - Wird beim Anlegen eines Geräts instanziiert **Grafik** - Unterstützt SVG und Bitmap (PNG/JPG) - Grundlage für alle grafischen Ansichten --- ### `device_type_ports` Portdefinitionen eines Gerätetyps. **Verwendung** - Definiert, wo sich Ports im Bild befinden - Wird beim Erzeugen eines Geräts kopiert **Grafische Attribute** - `x`, `y`: relative Position im Gerätebild **Metadata** - JSON-Feld für erweiterte Eigenschaften --- ### `devices` Konkretes Gerät in der Infrastruktur. **Verwendung** - Instanz eines Gerätetyps - Kann in einem Rack platziert werden - Beim Anlegen eines Geräts werden Ports aus `device_type_ports` übernommen **Rack-Attribute** - `rack_position_he` - `rack_height_he` **Technische Attribute** - `web_config_url`: Optionale Adresse zur Weboberfläche / Webconfig des Geräts. --- ### `device_ports` Ports eines konkreten Geräts. **Verwendung** - Entstehen aus `device_type_ports` - Tragen den aktuellen Betriebszustand **Technische Attribute** - Status (aktiv / deaktiviert) - VLAN-Konfiguration - Modus (Access, Trunk, Custom) --- ## 5. Port- & Verbindungstypen ### `port_types` Definiert die physische oder logische Art eines Ports. **Beispiele** - RJ45 - SFP - LC - BNC - Proprietär **Zweck** - Einheitliche Typisierung von Ports - Grundlage für Modul-Kompatibilität --- ### `connection_types` Definiert die Art einer Verbindung. **Verwendung** - Bestimmt technische Eigenschaften - Steuert grafische Darstellung **Grafische Attribute** - Linienfarbe - Linienart (durchgezogen, gestrichelt, gepunktet) --- ## 6. Module (z. B. SFP) ### `modules` Ein Modul, das in einen Port eingesetzt werden kann. **Verwendung** - SFP, SFP+, QSFP, Medienkonverter, Spezialkarten - Kann selbst Ports besitzen --- ### `module_ports` Ports eines Moduls. **Verwendung** - Verbindungspunkt nach außen - Typischerweise Glasfaser- oder Spezialports --- ### `device_port_modules` Verknüpfung zwischen Geräteport und eingesetztem Modul. **Verwendung** - Erlaubt modulare Portstrukturen - Unterstützt komplexe Hardware-Topologien --- ## 7. VLANs ### `vlans` Definiert VLANs unabhängig von Ports. **Verwendung** - Wiederverwendbare VLAN-Definitionen - Referenz in Port- und Verbindungs-Konfigurationen --- ## 8. Verbindungen ### `connections` Zentrale Tabelle für alle Verbindungen. **Verwendung** - Verbindet beliebige Ports miteinander - Unterstützt: - Geräteports - Modulports - Dosenports **Designentscheidung** - Ports werden polymorph referenziert (`port_type`, `port_id`) - Ermöglicht maximale Flexibilität ohne Schemaänderungen **Zusatzinformationen** - VLAN-Konfiguration - Betriebsmodus - Freitext-Kommentare --- ## Designphilosophie - **Grafik ist Teil des Modells** - **Ports sind universelle Verbindungspunkte** - **Keine Einschränkung auf Ethernet** - **Keine Annahmen über Netzwerk-Topologie** - **Erweiterbarkeit vor Perfektion** --- ## Hinweis zur Erweiterung Das Schema ist vorbereitet für: - Mehrbenutzerbetrieb - Historisierung - API-Nutzung - Exporte - Design-Themes Diese Funktionen sind bewusst **nicht Bestandteil der ersten Version**.