Frage

Guten Nachmittag,

Ich bin derzeit in der sehr frühen Phase eines neuen Projekts, das in .NET geschrieben wurde, und verwende Entity Framework für Datenpersistenz/Speicher. Eine der erforderlichen Funktionen ist die Fähigkeit, bestimmte Modelltypen zu "Versionen" zu "Versionen". Z. B. ein Modell ist eine "Anforderung", die n "Anforderungsversionen" hat und im Grunde genommen die Möglichkeit hat, in die Geschichte/den Lebenszyklus dieser bestimmten "Anforderung" zurückzukehren. Das einzige, was über alle Überarbeitungen hinweg statisch sein muss, ist "ID", alles andere ist während der gesamten Lebensdauer der Anforderung absolut veränderlich.

Jetzt ist das Q, sollte ich einfach eine 1: n -Beziehung zwischen einer Anforderung >> erstellen? Andere Merkmale sind die Möglichkeit, alte Zustände vollständig wiederzubeleben, um die aktuelle/neueste zu sein. Es muss die Möglichkeit geben, eine geringfügige und wichtige Version (Änderungen) und so zu haben, und nicht zuletzt die Fähigkeit, eine „Grundlinie“ durch Eine Sammlung von Anforderungen mit der neuesten Version, um zu einem späteren Zeitpunkt auf diese bestimmte Grundlinie zurückzukehren und alle enthaltenen Anforderungen anzuzeigen?

Dies muss bis zu ein paar Millionen Anforderungsaufzeichnungen skalieren, von denen jeder ein paar tausend Überarbeitungen hat. Deshalb frage ich mich besonders. Der Skalierungsaspekt einer einfachen 1: n -Beziehung usw.

Hat jemand etwas Ähnliches und vielleicht einige Vorschläge/Best Practices usw. in Bezug auf Versioning/Baselining usw. gemacht?

Prost & Danke, -Jörg

War es hilfreich?

Lösung

Dies hängt davon ab, wie viel Daten jede Anforderung hat.

Wenn die Anforderung große Felder aufweist (z. B. Beschreibung der Anforderung).

  1. Sie möchten wahrscheinlich stattdessen Versionsfelder, nicht selbst erforderlich. Leider scheint es keine einfache Möglichkeit zu geben, mit dem Entitätsrahmen umzugehen.
  2. Eine andere Lösung (wir haben dies für CMS gemacht) besteht darin, separate Tabellen für die Anforderung und für die Anforderung Beschreibung zu haben. Infolgedessen haben Sie Anforderungen und Anforderungsdesschriften.

Wenn die Anforderung klein genug ist, können Sie die Anforderung verwenden >> Anforderung. In den meisten Fällen werden Sie keine wesentlichen Daten wachsen, insbesondere Sie können die SQL2008 -Komprimierung verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top