Я работаю над созданием модели данных для хранения данных, связанных с отслеживанием производства. Я работаю в инженерной фирме, которая моделирует и анализирует данные для наших клиентов. В процессе есть несколько шагов, и процесс постоянно обновляется.Дизайн базы данных для обновляемых последовательных записей
Я пытаюсь моделировать процессы и включать родительские процессы и последовательный порядок процессов.
Например:
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
.
Есть ли лучший способ хранить данные такого рода и поддерживать нормализацию?