Hallo,
ich entwickle gerade ein Konzept für die Entwicklung einer webbasierten Datenbankanwendung. Ziel ist das Erstellen einer GUI, die per Browser abrufbar ist und für die Abfrage, Pflege und Eingabe von Daten dient.
Das vorhandene Datenbank-Modell besteht aus etwa 70 Tabellen, die gemeinsam etwa 2500 Spalten/Attribute besitzen. Da diese Datenbankstruktur als Grundlage für verschiedene Projekte dienen soll, die selten jeweils alle Tabellen der Datenbank benötigen, möchte ich die Anwendung modular aufbauen, um nur benötigte Module für die jeweiligen Projekte „freizugeben“.
Dieses Konzept möchte ich bis auf die Feldebene herunterbrechen, damit folgendes fiktives Szenario denkbar wäre:
Projekt A und B benötigen das Modul „Kundenkartei“. Jedoch benötigt nur Projekt B das Feld „Ansprechpartner“, andererseits benötigt nur Projekt A das Modul „Einkauf“.
An dieser Stelle würde ich beispielsweise über eine XML-Datei die Projekte konfigurieren, wobei in den einzelnen „Projektzweigen“ der XML-Datei die verwendeten Module mit den jeweils benötigten Feldern vermerkt sind. Allerdings bin ich mir über die effektive Realisierung der Eingabemasken noch nicht ganz klar.
Für die Ausgabe dachte ich an folgende Variante:
Die ausgelesenen / abgefragten Datensätze könnten in XML-Strukturen gespeichert werden, um dann mittels XSLT in (X)HTML-Code gewandelt zu werden, welcher dann per CSS ein Layout erhält. Durch Nutzung von XML würde sich an dieser Stelle vermutlich der Aufwand zur Implementierung geforderter Exportfunktionen (z.B. pdf) deutlich minimieren.
EDIT:
Die gesamte Anwendung soll (derzeit) MySQL als Datenbank nutzen - welche Möglichkeiten gibt es, die Anbindung so flexibel zu gestalten, daß auch ein (späterer) Wechsel zu einer anderen Datenbank (z.B. PostgreSQL) möglich wäre?
/EDIT
Für die gesamte Anwendung soll natürlich MVC als Architekturmuster zum Einsatz kommen, da davon auszugehen ist, daß die Anwendung langjährig im Einsatz sein wird und laufenden Anpassungen unterliegen wird, die möglichst leicht einpflegbar sein sollten.
Was haltet ihr von diesem Konzept? Ist diese Vorgehensweise „state-of-the-art“ und „zukunftssicher“ oder ist es in diesem Anwendungsfall ein völlig falsches Vorgehen? Für Anregungen, Hinweise und Feedback – insbesondere hinsichtlich der Dateneingabe - bin ich sehr dankbar.
Vielen Dank und viele Grüße
ich entwickle gerade ein Konzept für die Entwicklung einer webbasierten Datenbankanwendung. Ziel ist das Erstellen einer GUI, die per Browser abrufbar ist und für die Abfrage, Pflege und Eingabe von Daten dient.
Das vorhandene Datenbank-Modell besteht aus etwa 70 Tabellen, die gemeinsam etwa 2500 Spalten/Attribute besitzen. Da diese Datenbankstruktur als Grundlage für verschiedene Projekte dienen soll, die selten jeweils alle Tabellen der Datenbank benötigen, möchte ich die Anwendung modular aufbauen, um nur benötigte Module für die jeweiligen Projekte „freizugeben“.
Dieses Konzept möchte ich bis auf die Feldebene herunterbrechen, damit folgendes fiktives Szenario denkbar wäre:
Projekt A und B benötigen das Modul „Kundenkartei“. Jedoch benötigt nur Projekt B das Feld „Ansprechpartner“, andererseits benötigt nur Projekt A das Modul „Einkauf“.
An dieser Stelle würde ich beispielsweise über eine XML-Datei die Projekte konfigurieren, wobei in den einzelnen „Projektzweigen“ der XML-Datei die verwendeten Module mit den jeweils benötigten Feldern vermerkt sind. Allerdings bin ich mir über die effektive Realisierung der Eingabemasken noch nicht ganz klar.
Für die Ausgabe dachte ich an folgende Variante:
Die ausgelesenen / abgefragten Datensätze könnten in XML-Strukturen gespeichert werden, um dann mittels XSLT in (X)HTML-Code gewandelt zu werden, welcher dann per CSS ein Layout erhält. Durch Nutzung von XML würde sich an dieser Stelle vermutlich der Aufwand zur Implementierung geforderter Exportfunktionen (z.B. pdf) deutlich minimieren.
EDIT:
Die gesamte Anwendung soll (derzeit) MySQL als Datenbank nutzen - welche Möglichkeiten gibt es, die Anbindung so flexibel zu gestalten, daß auch ein (späterer) Wechsel zu einer anderen Datenbank (z.B. PostgreSQL) möglich wäre?
/EDIT
Für die gesamte Anwendung soll natürlich MVC als Architekturmuster zum Einsatz kommen, da davon auszugehen ist, daß die Anwendung langjährig im Einsatz sein wird und laufenden Anpassungen unterliegen wird, die möglichst leicht einpflegbar sein sollten.
Was haltet ihr von diesem Konzept? Ist diese Vorgehensweise „state-of-the-art“ und „zukunftssicher“ oder ist es in diesem Anwendungsfall ein völlig falsches Vorgehen? Für Anregungen, Hinweise und Feedback – insbesondere hinsichtlich der Dateneingabe - bin ich sehr dankbar.
Vielen Dank und viele Grüße
Kommentar