Je travaille sur la création d'un modèle de données pour stocker des données liées au suivi de production. Je travaille pour une firme d'ingénierie qui modélise et analyse des données pour nos clients. Il y a plusieurs étapes dans le processus et le processus est constamment mis à jour. J'essaie de modéliser les processus et d'inclure les processus parents et l'ordre séquentiel des processus.Conception de base de données pour les enregistrements séquentiels pouvant être mis à jour
Par exemple:
Process Table
---------------------
ProcessID - uniqueidentifier
ProcessName - varchar
ProcessDescription - varchar
...
ProcessOrder Table
---------------------
ProcessID - uniqueidentifier FK - Process
ParentProcessID - uniqueidentifier FK - Process
ProcessOrder - int
...
La colonne ProcessOrder
dans le tableau ProcessOrder
serait tout simplement stocker un nombre représentant l'étape séquentielle dans laquelle le processus parent qu'il représente. Par exemple, une procédure de modélisation comporte les étapes suivantes: créer un nouveau modèle vide, nommer un modèle, entrer des paramètres de modèle. Le Process
Table ressemblerait à ceci:
ProcessID | ProcessName | ProcessDescription
-------------------------------------------------
UUID1 | Modeling | Create Model of Data
UUID2 | New Model | create new empty model
UUID3 | Name Model | name model
UUID4 | Parameters | enter model parameters
Le ProcessOrder
Table ressemblerait à ceci:
ProcessID | ParentProcessID | ProcessOrder
--------------------------------------------------
UUID2 | UUID1 | 1
UUID3 | UUID1 | 2
UUID4 | UUID1 | 3
Le problème avec cette conception est que lorsque le flux de travail est mis à jour, l'ordre de processus changera et je aurai besoin pour mettre à jour l'enregistrement ProcessOrder
pour le processus qui a changé et pour tous les enregistrements suivants avec le même ParentProcessID
.
Existe-t-il un meilleur moyen de stocker ce type de données et maintenir la normalisation?