Ich arbeite an der Erstellung eines Datenmodells zum Speichern von Daten im Zusammenhang mit der Produktionsverfolgung. Ich arbeite für ein Ingenieurbüro, das Daten für unsere Kunden modelliert und analysiert. Der Prozess besteht aus mehreren Schritten und wird ständig aktualisiert.
Ich versuche, die Prozesse zu modellieren und übergeordnete Prozesse und die sequentielle Reihenfolge der Prozesse einzubeziehen.
Zum Beispiel:
Process Table
---------------------
ProcessID - uniqueidentifier
ProcessName - varchar
ProcessDescription - varchar
...
ProcessOrder Table
---------------------
ProcessID - uniqueidentifier FK - Process
ParentProcessID - uniqueidentifier FK - Process
ProcessOrder - int
...
In der ProcessOrder
Spalte in der ProcessOrder
Tabelle wird einfach eine Zahl gespeichert, die angibt, welchen sequentiellen Schritt im übergeordneten Prozess sie darstellt.
Ein Modellierungsverfahren umfasst beispielsweise die folgenden Schritte: Neues leeres Modell erstellen, Modell benennen, Modellparameter eingeben. Die Process
Tabelle würde aussehen wie:
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
Die ProcessOrder
Tabelle würde aussehen wie:
ProcessID | ParentProcessID | ProcessOrder
--------------------------------------------------
UUID2 | UUID1 | 1
UUID3 | UUID1 | 2
UUID4 | UUID1 | 3
Das Problem bei diesem Entwurf ist, dass sich bei der Aktualisierung des Workflows die Prozessreihenfolge ändert und ich den ProcessOrder
Datensatz für den geänderten Prozess und für alle nachfolgenden Datensätze mit demselben aktualisieren muss ParentProcessID
.
Gibt es eine bessere Möglichkeit, diese Art von Daten zu speichern und die Normalisierung aufrechtzuerhalten?