EleLa - Elektronik Lagerverwaltung Hilfe

Aufbau Datenbankstruktur V4.2.23A04

Dieses Tutorial zeigt wie die Datenbankstruktur von EleLa aus sieht.

Hier die Ansicht, nur Tabellen Bauteile und deren zugehörige Tabellen:


Ansicht Bauteile und die verknüpften Tabellen, ohne Projektverknüpfungen.

Hier die Ansicht, nur Tabellen Projekt und deren zugehörige Tabellen:

Ansicht Projekt und die verknüpften Tabellen, ohne Bauteil und Doku.

Hier alle Tabellen, die gesamte Datenbank:


Ansicht incl. foto, wissen, projekt und interne Tabellen.

Beschreibung der Tabellen und Funktionen:

Die Verknüpfungen der Verbindungen zeigen die FOREIGN KEYS in der Datenbank. Wenn man eine z.B.
Bei einem Löschen eines Datensatzes wird in der verknüpften Tabelle das Feld "xxx_ID" auf NULL gesetzt oder der Datensatz gelöscht. Wenn ein Bild gelöscht wird, so wird auch der Datensatz in der Tabelle "foto" gelöscht.

Die Felder Tabellen sind immer zueinander mit der eindeutigen ID Zahl verknüpft und Informationen werden nicht doppelt gespeichert.
Das Feld "Foto_ID" zeigt somit auf die Tabelle "foto" und der Spalte "ID". In dieser Zeile stehen dann die weiteren Informationen.

Das Feld "ID_ID" zeigt auf die gleiche Tabelle zur Spalte "ID". Somit können Baumstrukturen wie bei Typ-F8 oder Projekte-F3 angelegt werden.

Bei Adresse werden die Ansprechpartner ebenfalls in der Tabelle "adr" mit gesetztem "ID_ID" Feld für die Hauptadresse gespeichert.

In den Tabellen in den Feldern "Bezeichnung" muss ein eindeutiger Text hinterlegt werden, damit bei Auswahl mittels Drop-Down Felder in verknüpften Tabellen auch immer einen eindeutigen Eintrag zeigt. Beispiel: Die "Kiste" wird bei Bauteil mittels Drop-Down ausgewählt, daher muss die Bezeichnung der Kiste (Tabelle Kiste) eindeutig sein.

Felder, die in der EleLa.exe als Checkbox oder Ja/Nein-Felder dargestellt werden sind in der Datenbank als Integer Felder definiert. Die Werte dürfen dann nur 0 oder 1 enthalten.
Beispiel: Tabelle "adr" Feld "Lieferant".

Das Feld "TecData" ist ein Feld vom Typ JSON. Hier können diverse technische Daten mit eigenen Bezeichnern abgelegt werden. Das Format muss JSON sein, da die Datenbank direkt den Inhalt der JSON Daten weiter verwenden kann, z.B. darin suchen.

Die Tabelle "param" dient nur für interne Parameter, die Tabelle "translate" nur für Übersetzungen, daher sind auch keine Verweise auf andere Tabellen nötig.

Die Tabelle "foto" beinhaltet alle Bilder. Jede Tabelle, der man ein Bild anhängen kann hat somit eine Spalte "Foto_ID" um auf die Bild-Daten zu verweisen.

Das Feld "AendDatum" wird immer bei Änderung mit dem aktuellen Zeitstempel beschrieben. Somit kann man jederzeit nachvollziehen wann zu letzt ein Datensatz entweder durch einen Benutzer oder durch EleLa geändert wurde.

BauteilVariante Tabelle:

Die Felder ArtikelNr, Barcode, Art, die auch in den Projektpositionen und Kostenvoranschlag Positionen vorhanden sind, kopiert EleLa automatisch bei Auswahl eines Bauteils mit in die verknüpfte Felder und überschreibt so evt. vorhandene Einträge. Jedoch kann man nachträglich diese Werte jederzeit ändern.

Projekt und ProjektPos Tabelle:

Diese Tabellen unterstützen eine Versionierung von Projekten. Die Versionierung ist in den Spalten gelöst:

  • Projekt.ID_ID_Version
  • ProjektPos.ID_ID_Version
  • Projekt.ProjektVersion_ID
  • ProjektPos.ProjektVersion_ID

Der aktuelle Datensatz, bzw. Haupt Datensatz ist immer der Datensatz mit der ID. Sobald eine Versionierung erfolgt wird in ProjektVersion ein neuer Datensatz erzeugt und diese ProjektVersion.ID wird dem Projekt.ProjektVersion_ID angehängt. Ab diesem Zeitpunkt ist das Projekt "Versioniert" und kann nicht mehr geändert werden.
Um eine Änderung vom Projekt zu erlauben muss das Projekt für Änderungen frei gegeben werden. Dabei erzuegt EleLa eine Kopie von dem Datensatz, diese Kopie erhält eine neue ID. Bei dem ursprünglichen Datensatz wird Projekt.ProjektVersion_ID gelöscht, diese kann ab nun geändert werden.
Damit der neue Datensatz weis, welcher Haupt Datensatz zum Projekt gehört wird im neuen Datensatz in Projekt.ID_ID_Version die ID vom Haupt Datensatz gesichert.

Bei den ProjektPos geschieht es ähnlich wie beim Projekt. Der Unterschied ist, dass nur Positionen kopiert werden, die nach der Freigabe vom Projekt für Änderungen, geändert werden. Somit werden nur wenige Datensätze je geänderter Version erzeugt.
Diese Methode hat jeodch den Nachteil, dass für die Darstellung der gültigen Positionen EleLa sämtliche zu einem Projekt gehörige Positionen durch rechnen muss um dann die Position mit der korrekten Version an zu zeigen.

 


© 2010-2024 by Markus Müller