Каким образом возможно организовать связь между сущностями один к одному?

От: [Anna Khromova|https://t.me/]

Проектный кейс требует разнесения данных по двум таблицам для оптимизации доступа к данным. В документации RMS описаны два вида связи: один ко многим и многие ко многим. Если использовать для нашего случая связь один ко многим, указывая в одной таблице ссылку на вторую, то это потребует разработки дополнительных настроек форм в связи с тем, что:

  • надо ограничить ввод данных в соответствии с бизнес-логикой 1х1 (не позволять создавать более одной связи);
  • надо одновременно создавать из одной формы записи сразу в две таблицы.

Возможно, на проектах уже возникали подобные требования, и есть наработки по организации связи 1х1?

https://rms.bars.group/app/#i/f89e48b0-c2aa-424f-ba0b-212c89de2517/master/f89e48b0-c2aa-424f-ba0b-212c89de2517

a.gizzatullina ответил(а):
1 вариант:
Используйте контрол “Форма редактирования поля”.
Подробнее здесь- https://rms.bars.group/doc/#!/guide/f6ca5698fd684121aa5ed10fdf5507a6.

Примечание: в сущности, по которой создана исходная форма, должна быть ссылка на сущность, которая является источником данных для формы вложенной через этот контрол.
При сохранении будут создаваться записи в обоих сущностях и проставляться ссылка между ними.

2 вариант:
Используйте наследование.
Подробнее здесь- https://rms.bars.group/doc/#!/guide/Opisanie_Ehlementov_Konstruktora_04_Entity_03_Nasledovanie и на YouTube- https://www.youtube.com/watch?v=-EQb9rJSfPQ&feature=youtu.be

Выбор используемого варианта зависит от бизнес- логики того, что вам нужно реализовать.

a.khromova ответил(а):
Спасибо! Скорее всего, нам подойдет 1 вариант.

Но возникает смежный вопрос: можно ли прокинуть значение атрибута из родительской формы во вложенную? Цель такая: вложенная форма будет вызываться из нескольких разных родительских форм, и во вложенную форму надо передать тип родительской.