J'ai lu quelques questions sur SI (comme cela on) en ce qui concerne la gestion des versions de vos données dans une base de données.
J'ai aimé certaines des suggestions qui ont été mentionnés. J'ai pendant longtemps voulu (nécessaire) à la révision de plusieurs de mes tables mais n'a jamais eu autour d'elle. D'être un programmeur avec seulement d'un simple travail de base de données sous ma ceinture, je me demandais comment serait en fait aller à ce sujet.
Je ne demande pas de la solution réelle dans la syntaxe SQL. Je peux éventuellement comprendre cela pour moi-même (ou post ALORS, quand vient le temps). Je suis juste de demander aux gens de commenter comme la façon dont ils vont le faire et d'éventuels problèmes de performances, il peut être si j'étais à la "révision" des centaines de millions d'enregistrements. Ou toutes autres suggestions en tant qu'il est basé sur l'exemple ci-dessous.
Étant donné un exemple simple:
Person
------------------------------------------------
ID UINT NOT NULL,
PersonID UINT NOT NULL,
Name VARCHAR(200) NOT NULL,
DOB DATE NOT NULL,
Email VARCHAR(100) NOT NULL
Audit
------------------------------------------------
ID UINT NOT NULL,
UserID UINT NOT NULL, -- Who
TableName VARCHAR(50) NOT NULL, -- What
OldRecID UINT NOT NULL, -- Where
NewRecID UINT NOT NULL,
AffectedOn DATE NOT NULL, -- When
Comment VARCHAR(500) NOT NULL -- Why
Je ne sais pas comment on pourrait relier la table d'Audit pour toutes les autres tables (comme Personne) si le nom de la table est une chaîne de caractères?
Aussi, en supposant que j'ai trois GUI est à renseigner:
- Un dossier complet pour une personne spécifique id
- Une vue de la table d'inscription de toutes les personnes (id)
- Une vue montrant chaque personne avec leur révision info en dessous de chaque entrée (nombre de révisions par personne, les dates de révisions, de la révision des commentaires, etc), commandé par les révisions les plus récentes.
Pour accomplir 1 et 2, il serait mieux à la requête de la Personne de la table ou la table d'Audit?
Pour accomplir 3, serait un soi-disant expert base de données simplement obtenir tous les dossiers et de les transmettre à un logiciel de traitement, ou d'un groupe par PersonID et dates Concernées? Est-ce généralement traités dans une même requête, ou plusieurs?