生産追跡に関連するデータを格納するためのデータ モデルの作成に取り組んでいます。私は、クライアントのデータをモデル化および分析するエンジニアリング会社で働いています。プロセスにはいくつかのステップがあり、プロセスは常に更新されています。
プロセスをモデル化し、親プロセスとプロセスの順序を含めようとしています。
例えば:
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
です。
この種のデータを保存し、正規化を維持するためのより良い方法はありますか?