Ich schlage keine Builder-Entwicklung vor, obwohl es nicht auszuschließen ist, daß euch irgendetwas inspiriert. Ich sehe das als komplementär zum Builder. Der Builder ist super leicht zu bedienen. Aber mir fehlt - in vielen Bereichen immer wieder - diese Gesamtperspektive, in der man durch Anschauen von Tabellen (oder Filtern in Excel) Auffälligkeiten oder Unregelmäßigkeiten bemerkt, die oft Fehler sind.
Beispielsweise sind bei mir Attribute, die code oder name heißen, immer eindeutig, aber natürlich muß ich jeden einzeln anlegen. So eine Tabelle sagt mir, welchen ich vergessen habe. Also als ein Beispiel von vielen.
Was ich für meine eigenen Zwecke schon gemacht habe, das sind so Abfragen wie
SELECT r.name AS relation,
a.name AS attribute,
f.name AS references,
CASE WHEN content_use = 'default' THEN content::text ELSE content_use::text END AS content,
nullable
FROM app.attribute a
JOIN app.relation r ON r.id = relation_id
JOIN app.module m ON m.id = module_id
LEFT JOIN app.relation f ON f.id = a.relationship_id
WHERE m.name = 'fm';
Den Output (als CSV von psql) kopiere ich in ein Excelsheet und vergleiche das mit meinem Konzept, das ebenfalls als Excelsheet vorliegt.
(Randnotiz: Außerdem habe ich mir in diesem Fall einen Generator für Python-Klassen gemacht, der mir das Ergebnis eines simplen SELECT auf eine einzige Relation mit einem einzigen Schlüssel als Liste von Objekten zurückgibt. Das reduziert meine Tippfehler in Kombination mit Code Completion beim Schreiben von komplexer Weiterverarbeitungsfunktionen.)
Bei den Captions ist auch interessant, welche man in welcher Sprache hat. Das sieht man ja bei jeglicher Software (und Online Shop), daß der eine oder andere Label nicht in der richtigen Sprache hinterlegt ist.
(Randnotiz: Wir hatten einmal den Fall, daß jemand beim Reinkopieren der Übersetzungen im Online Shop die falsche Sprache erwischt hat, aber nur ein paar Mal. Das hat mir der Spell Checker von Office verraten, sonst hätte ich es nicht gesehen in der Datenmenge.)
Eine Liste, welche Menüs welcher Benutzer sieht, bekommt man von dieser Kette an JOINs:
instance.login – instance.login_role – app.role – app.role_access – app.menu
Der Builder kann das auch, aber zum Rumreichen und Filtern etc. ist ein Excelsheet schon praktisch.
Weil die Container verschachtelt sind, werde ich mir da eine Blockdarstellung in HTML machen, so wie die Struktogramme (Nassi-Shneiderman-Diagramme), falls sich jemand an die erinnern kann. Es ist evident, daß ich Schwierigkeiten habe, in den Ansichten für 50 Relationen überall die richtigen Werte zu hinterlegen, die halt gefordert sind, damit es funktioniert. So eine Übersicht über mein Bemühen sollte mir dann aufzeigen, wo ich schlampig war.
Ein weiteres verwandtes Projekt ist die Außenkommunikation der Datenstruktur. Also welche "Spalten" in welchen "Tabellen" jetzt da sind, was wir noch brauchen und wie ich das, was da ist, befüllt haben möchte. Dazu verknüpfe ich die obige Abfrage noch mit Captions, wenn ich laienfreundlich sein will.
Auf der 20. Traumwolke schwebt dann noch ein ER-Diagramm oder irgendetwas ähnliches, zum An-die-Wand-Hängen, damit alle sehen, was hier abgeht und warum ihr Detailwunsch noch nicht umgesetzt ist. Aber natürlich auch für sinnvolle, ernsthafte Diskussionen über manche Zusammenhänge. Aber das ist ein Faß, das noch länger zu bleiben wird, weil die Diagrammerstellung immer ein komplexes Thema ist.