J'ai un problème pour introduire un bon versioning dans ma conception de base de données.Versionnement dans la base de données relationnelle
Faisons un exemple facile. Un petit service de location. Vous avez un tableau Person (P_ID, Name)
, un tableau Computer (C_ID, Type)
et un tableau Rent (R_ID, P_ID, C_ID, FromData, ToData)
.
Je veux être en mesure de changer le nom d'utilisateur, créer une nouvelle version et toujours avoir l'ancien à portée de main si j'en ai besoin.
Mon but est d'avoir un système sur mes sites web, ce qui facilite la création d'un versionnement de certains enregistrements dans une table.
Plus d'informations:
J'ai la logique métier qui exige que je puisse libérer un record pour une version. Je dois aussi pouvoir revenir aux anciens. La raison en est que je veux exporter pour les versions diffrentes des données.
C'était la première fois que je prenais mais je dis que quelqu'un change ici Nom (dans l'exemple ci-dessus.) Alors vous feriez une nouvelle version dans l'entité principale mais le changement dans la table des noms détruirait l'ancienne version. Dans votre application, mais pour chaque table de plus, il faudrait plus de code d'application.Il doit y avoir un système plus général – nickik
Dans ce cas, l'entité en cours de version est "l'enregistrement d'enregistrement d'utilisateur" Cet enregistrement aurait PK, OriginalPK, et Champs VersionID Lorsque le nom a été modifié, vous créez un nouvel enregistrement avec PK, OriginalPK défini sur OriginalPK sur l'enregistrement "parent" et VersionID incrémenté de 1. Vous ne copieriez pas ou même ne réactualiseriez pas les FK dans la table Contacts transactions (car vous souhaitez conserver la "version" d'origine de l'enregistrement de l'utilisateur associé à la transaction, mais votre interface utilisateur peut indiquer qu'il existe des informations mises à jour pour cet utilisateur.) –
Cest ce que je cherchais merci. – nickik