Nous avons une exigence dans le projet de stocker toutes les révisions(Historique des modifications) pour les entités dans la base de données. Actuellement, nous avons 2 conçu propositions pour ceci:
par exemple, pour les "Employés" de l'Entité
Conception 1:
-- Holds Employee Entity
"Employees (EmployeeId, FirstName, LastName, DepartmentId, .., ..)"
-- Holds the Employee Revisions in Xml. The RevisionXML will contain
-- all data of that particular EmployeeId
"EmployeeHistories (EmployeeId, DateModified, RevisionXML)"
Conception 2:
-- Holds Employee Entity
"Employees (EmployeeId, FirstName, LastName, DepartmentId, .., ..)"
-- In this approach we have basically duplicated all the fields on Employees
-- in the EmployeeHistories and storing the revision data.
"EmployeeHistories (EmployeeId, RevisionId, DateModified, FirstName,
LastName, DepartmentId, .., ..)"
Est-il un autre moyen de faire cette chose?
Le problème avec le "1" est que nous avons à analyser le XML à chaque fois quand vous en avez besoin pour accéder à des données. Cela va ralentir le processus et également ajouter quelques limitations comme nous ne peut pas ajouter des jointures sur les révisions des champs de données.
Et le problème avec la "2" est que nous avons pour dupliquer chaque et chaque domaine sur toutes les entités (Nous avons environ 70 à 80 entités pour lesquelles nous voulons maintenir les révisions).