2010-11-20 7 views
0

Ich habe ein Datenbankschema für eine Fitnessanwendung, die einige der folgenden relationalen Tabellen enthält: Kunde, Sitzung, Training. Cust to Sess ist 1 zu viele, Sess zum Training ist 1 zu Viele. Wenn ich mit Repositories in EF 4 arbeite, sollte ich dann nur das eine erstellen? Da jede Tabelle verwandt ist, kann ich die Daten aller Tabellen in einer einzelnen Abfrage verfügbar machen. Oder würde alternativ jede Tabelle ihr eigenes Repository verwalten?Erstellen von Repositorys für relationale Tabellen

Weitere Informationen: Ein _customer erstellt eine _session, eine _session wird einem _workout zugeordnet. Ein _Training überwacht die einzelnen Sets, das Gewicht des Sets, die Anzahl der Wiederholungen und den Körperteil. Jede _session wird mit mehreren Workouts verknüpft sein. Wie auch immer, jeder _customer wird multiple _sessionId haben. Es scheint, dass _customer die aggregierte Wurzel ist und alle anderen Informationen dadurch abrufbar sind. Also würde ich ein Repository namens Kunde haben, der alles macht. Was ist mit Senarios, wo wir nur den Kunden wollen, aber nicht an Training etc. interessiert sind, wird das alles zurückgeschleppt wenn man einen Kunden anruft? Hoffe das macht Sinn?

Vielen Dank

Stu

Antwort

1

Sie fragen über die Idee eines "Aggregat Wurzel." Die Idee ist am besten in Eric Evans Domain Driven Design dokumentiert, aber Googeln dieser Begriff wird Ihnen genug geben, um die allgemeine Idee zu erhalten.

+0

Ja. Ich habe etwas gelesen, obwohl ich es ein wenig schwierig finde, es zu implementieren. Die Lösung, die ich implementieren möchte, ist Session the aggregate und Cutomer the aggregate root. Dann haben Sie Workout als separates Aggregat. Also ein Kunden-Repository und ein Workout-Repository. Das Workout würde die SessionId aus dem Kundenrepository abrufen. – hoakey