Question

Bonjour,

Je suis actuellement en phase très précoce d'un nouveau projet écrit en .Net et en utilisant Entity Framework pour la persistance des données / stockage. L'une des caractéristiques requises est la capacité de « version » de certains types de modèles. Par exemple. un modèle est une « exigence » qui aura n « Versions Exigence », ayant essentiellement un moyen de revenir en arrière dans l'histoire / cycle de vie de ce cas particulier « Exigence ». La seule chose qui doit être statique dans toutes les révisions est-il est « ID », tout le reste est tout à fait variable tout au long de la vie de l'exigence.

Maintenant, le Q est, dois-je « simplement » créer une relation 1: n entre une exigence >> RequirementVersion? D'autres fonctionnalités ont besoin sont la possibilité de faire revivre complètement les anciens états à courant / dernière en date, il doit y avoir la possibilité d'avoir la version mineure et majeure (changements) et tels, et last but not least la possibilité de créer une « base » à travers une collection des exigences avec la dernière version pour revenir à cette référence particulière à un moment ultérieur et d'afficher tous les RequirementVersions inclus?

Il a à l'échelle jusqu'à deux millions d'enregistrements d'exigence, chacun d'entre eux ayant quelques milliers de révisions .. qui est particulièrement pourquoi je demande .. l'aspect mise à l'échelle d'un 1 simple:. N relation etc

Quelqu'un at-il fait quelque chose de similaire et peut-être quelques suggestions / bonnes pratiques etc concernant versioning / baselining etc?

Vive et merci, -Jörg

Était-ce utile?

La solution

Cela dépend de la quantité de données chaque exigence a.

Si exigence a de grands champs (par exemple Exigence Description).

  1. Vous aimeriez probablement des champs de version à la place, pas à l'exigence elle-même. Malheureusement, semble qu'il n'y a pas de moyen facile de traiter avec Entity Framework.
  2. Autre solution (nous avons fait pour la CMS) est d'avoir des tables séparées pour l'exigence et pour la description des exigences. Donc, comme résultat que vous aurez RequirementVersions et RequirmentDescriptionVersions.

Si besoin est assez petit, vous pouvez utiliser requis >> RequirementVersion. Dans la plupart des cas, vous ne serez pas avoir des données importantes se développent, en particulier, vous pouvez utiliser la compression SQL2008.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top