Autor Beitrag
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 27.06.12 13:29 
Moin


Ich möchte ein umfangreicheres Programm schreiben, habe selber bisher aber nur wenig Erfahrung mit Datenbanken und da ich das Programm mehr als Übungs-Projekt anfasse, kann ich auch vorher keine detaillierte Datenbank erstellen, die dann auch immer funktioniert.

Deshalb habe ich mir überlegt, erst einmal ganz normal mit Klassen zu arbeiten, die mittels XML speichern und wenn ich dann irgendwann das Programm fertig habe und sicher bin, dass es funktioniert, dann erstelle ich eine Datenbank, die genau an die bestehenden Klassen angepasst ist.
In jeder Klasse ist jede Eigenschaft oder Methode dann nur noch eine Schnittstelle zu der eigentlichen Datenbank, die alles enthält. Auf diese Weise kann ich weiter experimentieren, muss aber nicht immer umständlich die Datenbank anpassen und auch Änderungen in der Datenbank sind ohne großen Aufwand erledigt, weil ich dann nur die entsprechende Klasse anpassen muss, die die geänderten Tabellen nutzt.


Wird das auch tatsächlich so gemacht, oder gibt es bessere Möglichkeiten, eine Datenbank ohne Probleme und große Änderungen in dem Programm zu ändern?
Hat vielleicht jemand Tipps aus eigener Erfahrung für mich?



Gruß


PS: Ich würde dann MsSQL nutzen
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 27.06.12 13:50 
Zitat:
Wird das auch tatsächlich so gemacht, oder gibt es bessere Möglichkeiten, eine Datenbank ohne Probleme und große Änderungen in dem Programm zu ändern?


Ja object-relationale Mapper (ORMs) sind ziemlich üblich. Selber schreibt man einen aber eher selten gibt ja bereits genug. (Entity Framework, NHibernate, llblgen etc.).
Und fast alle unterstützen ein Model-First Ansatz so wie du in scheinbar wünscht.

Zitat:
Hat vielleicht jemand Tipps aus eigener Erfahrung für mich?


Aus meiner Erfahrung sage ich, auch wenn es geht sollte man es nicht so machen. Model-First läuft meistens darauf hinaus das man plötzlich Abhängigkeiten seiner Anwendungen die aus der Wahl der Sprache, Technik etc. folgen (nicht immer offensichtlich) in der Datenbank hat. Wenn man bedenkt das Daten üblicherweise länger halten als die Anwendung die sie benutzen (zumindest in Anwendung in denen es sich lohnt überhaupt über die Methodik nachzudenken) oder andere Anwendungen hinzukommen die ebenfalls auf den selben Daten arbeiten sollen sollte man mit einem möglichst sauber designten Datenmodell beginnen (egal ob relational, objektrelational, objektorientiert oder was auch immer) und dann über die Darstellung als Modell in einer konkreten Anwendung mit einer konkreten Technik.