У меня есть система, которая принимает orders
, а заказ может иметь один или несколько files
. Файл принадлежит одному заказу.Несколько отношений «один ко многим» одному и тому же объекту
Кроме того, orders
может иметь один или много revisions
. Для этих изменений обычно использовалось то, что они могут загружать 0 или 1 файл. Итак, у меня были отношения one-to-zero-or-one
.
Теперь выясняется, что они могут загрузить 0 или несколько файлов для пересмотра. Я не уверен, как это обычно будет обрабатываться. Единственная идея, о которой я могу думать, - это добавить revisions_id
в таблицу files
и сделать ее равной NULL. При этом всегда будет нужен order_id
, чтобы узнать, для какого заказа он нужен, и если есть revisions_id
, я буду знать, что это от пересмотра, и мы сможем объединить их.
Как обычно, я знаю случаи ситуационные. Но мне было интересно, является ли это подход, который считался бы приемлемым для других разработчиков, которые раньше сталкивались с этой проблемой.
Возможно, вам следует избавиться от ссылки между 'files' и' orders', тем самым заставляя запросы проходить через «ревизию». Рассмотрим, что «оригинальная» версия является «ревизией». –