я бы воообще расмотрел вариант связи many2many Тогда можно будет шаги переиспользовать, но это надо будет смотреть как фронт предпологает потом эти рецепты показывать и формировать
короч, я наверное массив возьму. Я сейчас погуглил нормальные формы, массивы в своем роде же не нарушают их, нарушает именно пересечение (если, например, в массиве хранится ссылка на одну и ту же сущность)