Связь один к одному.

Все вопросы/проблемы по установке и использовании.
kurilka
Сообщения: 7
Зарегистрирован: 25 апр 2023, 07:44
Имя: Евгений
Откуда: Томск

Связь один к одному.

Сообщение kurilka »

Уважаемые форумчане.

Подскажите, пожалуйста, как в данной программе реализовать связь один к одному между таблицами?
Аватара пользователя
support
Техническая поддержка
Сообщения: 9312
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Связь один к одному.

Сообщение support »

https://docs.rukovoditel.net.ru/index.php?p=12
Там в видео-обзоре все показал на примере.
kurilka
Сообщения: 7
Зарегистрирован: 25 апр 2023, 07:44
Имя: Евгений
Откуда: Томск

Re: Связь один к одному.

Сообщение kurilka »

Да, это видео я смотрел. И, вроде как, понимание есть как строятся связи между таблицами:
- Сущность и Сущность Ajax - это связь один ко многим,
- Связанные записи - связь многие ко многим,
а мне необходима связь один к одному. Как это сделать?
Аватара пользователя
Antonyous99
Сообщения: 637
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Связь один к одному.

Сообщение Antonyous99 »

Да, собственно, отфильтровать свзяь ОДИН-КО-МНОГИМ.
Например, поставить фильтр (условие в Аякс запросе), чтобы только 1 нужная запись выбиралась.
ID этой записи брать, например, из соотв. поля в той же сущности.
Пожалуй, это самый просто вариант.
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
kurilka
Сообщения: 7
Зарегистрирован: 25 апр 2023, 07:44
Имя: Евгений
Откуда: Томск

Re: Связь один к одному.

Сообщение kurilka »

Создал две сущности: Таблица 1 и Таблица 2. В Таблице 2 добавил поле Сущность Ajax, выбрал сущность Таблица 1, добавил условие e.id=[541]. 541 - это id поля Сущность в Таблице 2.
Получилось следующее:
1. Если добавлять новую запись, то фильтр не срабатывает. Как я понимаю, записи ещё нет, поэтому сравнивать не с чем. В результате в списке отображаются все записи из таблицы и, получается, есть вероятность привязать новую запись к уже существующей.
Скрин_1.png
Скрин_1.png (8.84 КБ) 343 просмотра
2. Если редактировать существующую запись, то фильтр срабатывает, однако, если нажать маленький крестик (например промахнуться вместо выпадающего списка), то, видимо, связь между сущностями разрывается и происходит как на скриншоте выше - появляется список всех записей. Т.е. можно перепривязать текущую запись или создать для неё новую запись.
Скрин_2.png
Скрин_2.png (9.27 КБ) 343 просмотра

Вероятно я не до конца разобрался с настройками программы и сделал что-то не так. Подскажите пожалуйста.
Аватара пользователя
support
Техническая поддержка
Сообщения: 9312
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Связь один к одному.

Сообщение support »

А можете привести практический примере того, что пытаетесь сделать?
kurilka
Сообщения: 7
Зарегистрирован: 25 апр 2023, 07:44
Имя: Евгений
Откуда: Томск

Re: Связь один к одному.

Сообщение kurilka »

Есть объекты с уникальным, для каждого, набором параметров - Сущность 1 и Сущность 2. Есть устройства - Сущность 3, для которых необходимо установить связь с каким-то из объектов. Связь с объектом может меняться. Упрощённая схема реализации этого следующая:
Схема.png
Таблица Сущность 4 формируется автоматически при добавлении объектов и является как бы сводной таблицей сущностей 1 и 2, в которую записываются наименование объекта и ID таблицы сущности. Через эту таблицу задаётся связь для Сущности 3 и SQL запросом подтягиваются необходимые параметры сущности 1 или 2.
Данная схема вполне рабочая, но у неё есть один серьёзный недостаток - возможность случайного (человеческий фактор) изменения связей между записями Сущность 1 - Сущность 4 и Сущность 2 - Сущность 4, описанный чуть выше.
Аватара пользователя
support
Техническая поддержка
Сообщения: 9312
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Связь один к одному.

Сообщение support »

Ну, человеческий фактор всегда присутствует. Используя доступ к полям можно к примеру запретить редактирования связей.
kurilka
Сообщения: 7
Зарегистрирован: 25 апр 2023, 07:44
Имя: Евгений
Откуда: Томск

Re: Связь один к одному.

Сообщение kurilka »

Если я делаю запрет на изменение поля "Наименование" в Сущности 4, то в форме редактирования существующей записи в Сущности 1 или 2 вместо кнопки "Изменить" появляется кнопка "Добавить", так ещё хуже получается.

Пока пробовал разные варианты настроек, понял, что если как-нибудь скрыть маленький крестик в форме,
Скрин_3.png
Скрин_3.png (1.28 КБ) 262 просмотра
чтобы нельзя было разорвать существующую связь, и задать SQL условие null то схема начинает работать практически идеально. Можно это как-то реализовать или добавить такой функционал (скрыть кнопку удалить связь)?
Аватара пользователя
support
Техническая поддержка
Сообщения: 9312
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Связь один к одному.

Сообщение support »

А вы скройте ее с помощью CSS

Код: Выделить всё

#fields_264_rendered_value .select2-container--default .select2-selection--single .select2-selection__clear{
display:none
}
fields_264 замените на ID вашего поля.
Ответить