Richtige Datenanbindung bei Massendaten

01/06/2010 - 10:20 von Manuel Kobloch | Report spam
Hallo liebe Community,

ich brauche Hilfe bei der richtigen Wahl eines Konzepts zur Datenbindung.
Mir fehlt da leider sehr viel Erfahrung, da ich bisher nur auf einzelne
kleine Tabellen oder Views zugreifen musste, doch jetzt ein Programm
entwickeln muss, welches auf Massendaten von über 270 Tabellen zurück
greift. Ich verwende C# und SQLServer2008 (muss jedoch auch SQL2000
Kompatibel sein)

Die Daten aus der Datenbank müssen an der Oberflàche angezeigt werden und
sollten dort bearbeitet werden können. Die geànderten und neu eingegebenen
Daten müssen wieder in die Datenbank geschrieben werden. Hierbei müssen
folgende Randbedingungen beachtet werden:

* Die Daten können sehr komplex und aus Datensàtzen aus vielen
verschiedenen Tabellen zusammengesetzt sein.
* Es gibt viele 1-zu-n-Verknüpfungen. Es muss ein Konzept gefunden
werden, wie damit in eine Listenansicht umgegangen wird.
* Viele Eigenschaften einer Anzeige-Einheit bestehen aus einer
Verknüpfung, z.B. ein Raum oder ein Dozent. Diese Felder müssen an der
Oberflàche durch die AnzeigenAls-Eigenschaft der entsprechenden
Verknüpfungstabelle angezeigt werden. Die Speicherung erfolgt durch den
entsprechenden Fremdschlüssel. Das editieren sollte bei so einem Feld über
einen Dialog möglich sein.
* Bei der Übersetzung Fremdschlüssel "AnzeigenAls" sollte auf
Performance geachtet werden. Wenn möglich, sollte das nicht dem Control
überlassen und die Indizierung auf dem SQL Server genutzt werden.
* Je nach Ansicht muss damit gerechnet werden, dass sehr große
Datenbestànde geladen werden, um über das Control zu sortieren, filtern und
zu gruppieren. Auch hier sollte das laden nicht übermàßig lange dauern.
* Die Änderung von Daten sollte durch die Geschàftslogik des Programms
kontrolliert werden können. Warnhinweise der Geschàftslogik müssen
ausgegeben werden. Der Speichervorgang muss durch die Geschàftslogik
abgebrochen werden können.

Ich habe mir gedacht als Geschàftslogik eine XPO-Objektliste (OR-Mapper) und
Methoden zum Speichern von Daten und zum Überprüfen aktuell durchgeführter
Änderungen zu verwenden. Idealerweise sollte eine Möglichkeit gefunden
werden, solche Klassen in die Datenbindung zu integrieren. Ich stelle es mir
derzeit so vor:

Die Daten werden direkt, ohne den Umweg über eine Geschàftslogik, in die
Tabelle (Listenansicht) geladen. Wenn es mehr Sinn macht, dann über einen
OR-Mapper wie XPO von DevExpress. In einer Listenansicht können rund 10 000
bis 80 000 Datensàtze drin sein, daher wàre es Vorteilhaft, wenn die schon
geladenen Daten sofort angezeigt und im Hintergrund die restlichen Daten
nachgetragen werden.

Beim veràndern der Daten, soll es über die Geschàftslogik gehen, die
überprüft, ob die Eingaben korrekt sind (richtiges Format, Daten doppelt
oder irgendwelche Überschneidungen usw.). Dabei wàre es, bei der Menge an
Daten wichtig, dass nicht die komplette Liste neu geladen, sondern nur die
verànderte Zeile aktualisiert wird.

Als Listencontrol würde ich das xtraGrid von DevExpress verwenden. Aber ich
denke, das ist in dieser Diskussion nur nebensàchlich.

Wie làsst sich so etwas am Besten realisieren? Ich hoffe jemand macht sich
die Mühe den ganzen Text durchzulesen und kann mir helfen. Ich fühle mich
gerade ziemlich überfordert. Ist so etwas überhaupt möglich? Gibt es
irgendwelche Design Patterns? Kann jemand ein Buch empfehlen, welches mir zu
diesem Thema weiterhelfen kann?

Viele Grüße und ein großes Dankeschön im vorraus.

Manuel
 

Lesen sie die antworten

#1 Peter Fleischer
01/06/2010 - 12:38 | Warnen spam
Unexpected response: '20075 <hu3rof$4df$'

Ähnliche fragen