Entwurfsüberlegungen
Gedanken zum Entwurf der Architektur
Architekturentwurf
Speicherung der Daten
Entwurf der Datenbank Tabellen
anpassbare Variablen
Wert |
Datentyp |
Beispiele + Begründung |
Anzahl Etagen |
Javascript Integer |
→ Wiederverwendung für Gebäude mit mehr oder weniger Etagen (Umgebungspläne gelten intern als weitere Etage) |
Maske für Anzeige der Detailinformationen je nach Raumtyp |
Template |
individuell anpassbar, für jeden definierten Raumtyp andere Anzeigeform |
sonstige Daten
Belegungsplan - Link zu jeweiliger
KVV-Seite
Use Cases
- Nutzer
- Suche per Suchbegriff (Name, Raumnr. Telefon …)
- Navigation (Raum in der Grafik anklicken → Detailinformationen)
- Sprache umstellen
- Admin
- Datenänderung
- Miarbeiter - weg / neu / sonstige Änderung
- Access Points - weg / hinzu / woanders
- Raumbelegung ändert sich
- Raumaufteilung / Umbaumassnahmen (Änderung der Grafiken und HTML-Tabelle nötig)
- Daten Import / Update durchführen
- Template Änderungen
Rechtevergabe
Nutzergruppen:
- externe Besucher: nur Lesezugriff über Webseite
- Studenten mit Account: nur Lesezugriff über Webseite
- Mitarbeiter des Fachbereichs:
- Leserecht: alle Tabellen (auch über Datenbank Interface)
- Schreibrecht: Tabelle Person (alle Attribute)
- Admin: in allen Tabellen Schreib- und Leserechte
Funktionen
Update
Daten aus dem Active Directory (AD) oder anderen Quellen in die Datenbank (DB) kopieren
Vorgehensweise:
Schritt 1: kleines Script je Quelle, das die Daten aus dieser Quelle in einer genau vordefinierter Form in eine Textdatei schreibt.
Schritt 2: PHP-Funktion die diese Daten aus der Textdatei in die Datenbank überträgt und auf die Synchronisierung achtet
Probleme:
Schreibweisen im AD evtl. nicht einheitlich:
- z.B.: Raumnummer "008", "R008", "Raum 008", "Zimmer 008" …
- Lösung: nur Zahlen bzw. erlaubte Sonderzeichen (K bei den Kellerräumen, a bei 022a …) rausfiltern
- Problem: externe Arbeitsgruppen z.B. Fabeckstr.
Mitarbeiter aus alle eingetragenen Personen im AD filtern:
- Lösung 1: nur Eintragungen mit angegeben Raumnummer beachten
- Problem: Mitarbeiter die im AD noch keine Raumnummer angegeben haben gehen verloren / müssen von Hand in DB nachgetargen werden
Synchronisierung / Konflikvermeidung:
- Fall 1: Datensatz in DB und AD identsch => Keine Änderung nötig + Keine Konflikt
- Fall 2: Datensatz in DB noch leer in AD vorhanden => Dten aus AD in DB kopieren - kein Konflikt aber falsche Informationen möglich wenn Daten im AD an falscher Stelle gemacht (z.B. falscher Raum eingetragen).
- Fall 3: Datensatz in DB vorhanden und ungleich mit AD => Konflikt
- Lösung 1: Datensatz überspringen und keine Änderung in DB vornehmen (ungünstig - Änderungen müssten also immer in der Datenbank vorgenommen werden evtl. aktuelle Informationen des AD wären sinnlos)
- Lösung 2: Daten aus AD überschreiben Daten in DB (ebenfalls üngünstig aus gleichem Grund)
- Lösung 3: Daten werden nicht überschrieben, aber eine Konflikmitteilung an Admin ausgegeben mit betroffenem Datensatz zur Klärung (Konflikte am besten vermieden aber für Admin sehr aufwändig)
- Lösung 4: letztes Änderungsdatum der Daten word verglichen und der neue Datensatz wird geschrieben bzw. belassen (Problem: ist Änderungsdatum im AD gespeichert/auslesbar? in DB zusätzliche Spalte nötig)