Проблема, представленная мне, состоит в том, чтобы сохранить «профиль», который относится к упорядоченным «шагам». Один профиль имеет много шагов. Очевидно, что нет проблем связать эти шаги с соответствующим профилем через столбец внешнего ключа. Однако сохранить порядок шагов сложнее, поскольку шаги можно вставлять, удалять и / или переупорядочивать. То, что я ищу, - это более чистый способ сделать это, чем иметь некоторый столбец order_by на шагах, потому что, например, вставка шага между 1 и 2 в процесс с 20 шагами будет включать в себя несколько каскадных обновлений всех шагов 2-20.
Хранение отношений в таблице профиля в виде массива внешних ключей было бы идеальным, но я не нашел ничего, что указывало бы на то, что это возможно любым законно реляционным способом. Лучшее, что я придумал, - это сохранить отношение «многие к одному» в таблице шагов и иметь в профиле столбец со строковым массивом, который заменяется оптом при выполнении обновления заказа. Однако я опасаюсь, что этот «жестко запрограммированный» нереляционный метод слишком чувствителен к изменениям в таблице шагов, которые могут остаться «незамеченными» для массива, особенно при наличии нескольких сред баз данных.