Datenbankschema

Für unser neues Verwaltungssystem habe ich eben mal wieder einen Graphen des Datenbankschemas generieren lassen. Schaut nett aus:

database.jpg

Das Datenbankschema ist in einer “Meta-Sprache” definiert; ein kleines Perl-Script erzeugt daraus die entsprechenden DDL-Statements für SQLite, MySQL etc., sowie eine .dot-Datei, die als Input für DOT (GraphViz) dient und o.g. Graphen erzeugt.

2 Bemerkungen zu “Datenbankschema”

  1. Arne

    Hallo,

    magst du was über die Meta-Sprache erzählen? Ist das ne Eigenentwicklung? Ist die für Andere verfügbar?

    LG
    Arne

  2. Klaus Keppler

    Ja, ist was Eigenes. Allerdings ist das nicht hochwissenschaftlich von wegen eigener Grammatik/Parser/usw., sondern mehr ein Perl-Hack.

    Die Definition einer Tabelle mit Abhängigkeiten, Index und Standarddaten sieht etwa so aus:

    COUNTRIES:
    CNT_ID INTEGER NOT NULL PRIMARY KEY
    CNT_COUNTRYCODE VARCHAR(3) NOT NULL
    CNT_COUNTRY VARCHAR(30)

    # Relations
    COUNTRIES.CNT_ID -> CONTACTS.CON_COUNTRYID

    # Index
    CREATE INDEX COUNTRIES_COUNTRYCODE_IDX ON COUNTRIES(CNT_COUNTRYCODE);

    # Data
    INSERT INTO COUNTRIES VALUES (1, “DE”, “Germany”);

    Ein kleines Perl-Script parst dann diese Daten in diverse Hashes. Für jeden Ausgabe-Dialekt (MySQL, SQLite, …) existiert eine eigene Funktion, die aus den Hashes die Felddefinitionen ausliest und die DDL-Statements erzeugt.
    Das Prinzip ist also ziemlich primitiv. :)

    Die meiste Arbeit steckt in der “schönen” Erzeugung der DOT-Datei.

Einen Kommentar schreiben