Designtools für Datenbankschemata / modulares Datenbankdesign

8

Ich entwickle Anwendungen, die teilweise aus Modulen bestehen können. Zum Beispiel könnte ich eine Online-Community entwickeln, die die Module Forum, Blog, Galerie etc. enthält

Momentan habe ich eine große Datenbank ERM, die alle Tabellen aller Module mit Fremdschlüsselverbindungen enthält, und ich benutze dbwrench, um dieses ERM zu erstellen. Ich bin jedoch nicht sehr glücklich mit diesem Ansatz. Ich hätte gerne einen ERM-Designer, der modulorientiert arbeiten kann. Ich möchte die Datenbanktabellen in einer separaten Schemadatei für jedes Modul speichern, aber Fremdschlüsselreferenzen zwischen diesen verschiedenen Schemas beibehalten.

Ich konnte jedoch keine Tools finden, die dies unterstützen - ist das der falsche Weg oder wie gestalte ich "modulare ERM" / modulare Datenbankschemata?

Danke!

    
aurora 03.04.2009, 12:10
quelle

5 Antworten

2

Ich stimme zu, dass modulares Design der richtige Weg ist. Wenn wir Anwendungen für Kunden erstellen, verkaufen wir ihnen eine Sammlung von Widgets, die wir bereits erstellt haben. Was passiert also, wenn ein Kunde sagt: "Ich habe Website X besucht und ich mag ihr Widget Y. Kannst du das zu meiner Anwendung / meiner Website hinzufügen?"

Das ist eine gute Sache, die Kunde A für Widget Z bezahlt, das wir dann an alle anderen Kunden verkaufen können. Der Trick besteht darin, diese Widgets so zu erstellen, dass sie passen, ohne die aktuelle Anwendung zu unterbrechen.

Sehen Sie sich diesen Link und die in den Anmerkungen angegebenen Quellen an.

MediaWiki Design - Siehe die Hinweise unten

    
quelle
2

Ich bin absolut überzeugt, das ist der richtige Ansatz. Leider hat die Datenbankgemeinschaft noch keine neuen Konzepte wie Modulares Design, agile Softwareentwicklung und Ähnliches.

Wenn ich die Wahl habe, lasse ich ein ORM-Tool die Basis des Skripts erstellen und Details, die nicht zu einem ORM gehören (z. B. spezielle Indizes, Tablespaces, Partitionierung), manuell hinzufügen und auch Migrationsskripts manuell erstellen (was ist ziemlich einfach, wenn Sie die textbasierten Diffs haben, zwischen dem vollständigen Skript in zwei Versionen.

Also habe ich drei Arten von Skripten: automatisch generiertes Skript, das eine neue Datenbank generiert. manuell generiertes Skript, das dasselbe tut, aber einige zusätzliche Details enthält, die für die funktionalen Anforderungen irrelevant sind. eine Reihe von Migrationsskripten, die eine Datenbank Schritt für Schritt von einer Version zur nächsten verschieben.

Ich habe auch eine Reihe von Tests, die verschiedene Schemas erstellen, eine Kombination aus diesen Skripten verwenden und sie vergleichen.

Wenn ich Diagramme brauche, erstelle ich solche aus dem Schema oder dem Code des Objektmodells, indem ich etwas Reverse Engineering verwende.

    
Jens Schauder 03.04.2009 13:24
quelle
1

Ich verwalte separate Datenbank-Build-Skripte für jedes Modulschema und notiere einfach in Kommentaren, von welchen anderen Modulen sie abhängig sind. Ich füge Schema zu der Datenbank hinzu, die einer Anwendung wie erforderlich entspricht. Verwenden von normalen Indizes anstelle von Fremdschlüsseln. Ich habe immer herausgefunden, dass es für extrem modulare Aufgaben am besten ist, Dinge manuell zu erledigen.

    
Fire Crow 03.04.2009 13:03
quelle
1

Ich bevorzuge die Verwendung von Schemas. Es ist ein natürlicher Weg, um einen Bereich von Interesse einzukapseln (sei es ein Schema für ein Modul oder ein Schema, um einen Informationsbereich abzudecken).

Ich benutze PostgreSQL und bevorzuge es, die db-Initiation selbst zu schreiben (ich möchte 100% Kontrolle haben und SQL ist so explizit wie es geht.). Ich verwende SchemaSpy, um die ER-Diagramme zu generieren. Ich hatte keine Probleme mit mehreren Schemas und Fremdschlüsseln in Schemata - nicht sicher, wie das in MySQL funktioniert.

Ich bin nicht vertraut mit dem Tool, das Sie erwähnt haben, aber ein Screenshot scheint zu zeigen, dass sie Schemas unterstützen. Könnte es wert sein, noch einmal zu überprüfen. Ссылка

Was das modulare Design angeht, bin ich mir nicht sicher, ob die Schemata ausreichen, das Schema macht es dem Gehirn leichter, Annahmen darüber zu treffen, wie sich die Daten verhalten, es macht an sich nichts Modulares. Bitte klären Sie Ihre Anforderungen, wie sie modular sein sollten.

    
user348466 05.06.2010 22:13
quelle
-1

Ein guter Datenbankentwurf beginnt mit einer Liste der Daten, die Sie in Ihre Datenbank aufnehmen möchten, und was Sie später mit der Datenbank machen möchten. Dies alles kann in Ihrer eigenen Sprache ohne SQL geschrieben werden. In dieser Phase müssen Sie versuchen, nicht in Tabellen oder Spalten zu denken, sondern denken Sie einfach: "Was muss ich wissen?" Nimm das nicht zu leicht, denn wenn du später herausfindest, dass du etwas vergessen hast, musst du normalerweise von vorne anfangen. Hinzufügen von Dingen zu Ihrer Datenbank ist meistens eine Menge Arbeit.

Es gibt viele Tools, die Ihnen helfen können:

Archi

Archi wird als kostenloses und Open-Source-Werkzeug für visuelles Modellieren und Design verwendet, um Modelle und Modellierungsskizzen zu erstellen. Durch die Bereitstellung einer Open-Source-Referenzimplementierung von ArchiMate ist Archi derzeit eines der Tools, die zur Implementierung des Open Group ArchiMate Model Exchange-Dateiformats verwendet werden. Preis: Kostenlos

PowerDesigner

PowerDesigner ist wohl das führende Datenmodellierungswerkzeug der Branche. Zu den Funktionen gehören: vollständig integrierte Modelle, verschiedene Modellierungstechniken, die sowohl für IT-orientierte als auch nicht-IT-orientierte Benutzer geeignet sind. Es unterstützt auch ein leistungsfähiges Metadaten-Repository und verschiedene Ausgabeformate. Es hat eine nette und ausgefeilte Benutzeroberfläche mit einer leicht lesbaren Hilfedokumentation, die dem Benutzer hilft, Ad-hoc-Probleme schnell zu lösen.

Preis: $ 2.000

SQLDbm

• Preise: Kostenlos

• Forward Engineering: Verwenden Sie SQLDBM, um ein physisches Modell oder ERD Ihrer Datenbank zu erstellen

• Reverse Engineering: Verwenden Sie die Reverse-Engineering-Funktion, um Ihr Datenbankschema als SQL-Skript zu exportieren

Features:

• Erstellen Sie schnell und intuitiv Datenbankobjekte wie Tabellen, Objekte, Beziehungen, Indizes.

• Ändern und bearbeiten Sie Datenbankobjekte inline in Ihrem Diagramm

• Kopieren oder Verschieben von Spalten in Tabellen

• Vergrößern und Verkleinern von Diagrammen

• Design an Ort und Stelle in jedem Browser Preis: Kostenlos

    
halcosho 26.08.2017 15:36
quelle

Tags und Links