【发布时间】:2012-06-07 15:53:21
【问题描述】:
我正在创建一个数据模型来存储与生产跟踪相关的数据。我在一家为客户建模和分析数据的工程公司工作。该过程有几个步骤,并且该过程不断更新。
我正在尝试对流程进行建模并包括父流程和流程的顺序。
例如:
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 的所有后续记录。
有没有更好的方法来存储这类数据并保持规范化?
【问题讨论】:
标签: database database-design relational-database