我正在创建一个数据模型来存储与生产跟踪相关的数据。我在一家为客户建模和分析数据的工程公司工作。该过程有几个步骤,并且该过程不断更新。
我正在尝试对流程进行建模并包括父流程和流程的顺序。
例如:
Process Table
---------------------
ProcessID - uniqueidentifier
ProcessName - varchar
ProcessDescription - varchar
...
ProcessOrder Table
---------------------
ProcessID - uniqueidentifier FK - Process
ParentProcessID - uniqueidentifier FK - Process
ProcessOrder - int
...
表中的ProcessOrder
列ProcessOrder
将简单地存储一个数字,该数字表示它所代表的父进程中的哪个顺序步骤。
例如,一个建模过程有以下步骤:创建新的空模型,命名模型,输入模型参数。该Process
表看起来像:
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
该ProcessOrder
表看起来像:
ProcessID | ParentProcessID | ProcessOrder
--------------------------------------------------
UUID2 | UUID1 | 1
UUID3 | UUID1 | 2
UUID4 | UUID1 | 3
这种设计的问题是,当工作流更新时,流程顺序会发生变化,我需要更新已ProcessOrder
更改流程的记录以及具有相同ParentProcessID
.
有没有更好的方法来存储这种数据并保持规范化?