Связь один к одному.
Связь один к одному.
Уважаемые форумчане.
Подскажите, пожалуйста, как в данной программе реализовать связь один к одному между таблицами?
Подскажите, пожалуйста, как в данной программе реализовать связь один к одному между таблицами?
- support
- Техническая поддержка
- Сообщения: 9312
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Связь один к одному.
https://docs.rukovoditel.net.ru/index.php?p=12
Там в видео-обзоре все показал на примере.
Там в видео-обзоре все показал на примере.
Re: Связь один к одному.
Да, это видео я смотрел. И, вроде как, понимание есть как строятся связи между таблицами:
- Сущность и Сущность Ajax - это связь один ко многим,
- Связанные записи - связь многие ко многим,
а мне необходима связь один к одному. Как это сделать?
- Сущность и Сущность Ajax - это связь один ко многим,
- Связанные записи - связь многие ко многим,
а мне необходима связь один к одному. Как это сделать?
- Antonyous99
- Сообщения: 637
- Зарегистрирован: 18 авг 2019, 09:22
- Имя: Антон Владимирович
- Откуда: Санкт-Петербург
- Организация: ООО "РИКОМ-Сервис"
- Контактная информация:
Re: Связь один к одному.
Да, собственно, отфильтровать свзяь ОДИН-КО-МНОГИМ.
Например, поставить фильтр (условие в Аякс запросе), чтобы только 1 нужная запись выбиралась.
ID этой записи брать, например, из соотв. поля в той же сущности.
Пожалуй, это самый просто вариант.
Например, поставить фильтр (условие в Аякс запросе), чтобы только 1 нужная запись выбиралась.
ID этой записи брать, например, из соотв. поля в той же сущности.
Пожалуй, это самый просто вариант.
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
ERP/CRM "под ключ"
Re: Связь один к одному.
Создал две сущности: Таблица 1 и Таблица 2. В Таблице 2 добавил поле Сущность Ajax, выбрал сущность Таблица 1, добавил условие e.id=[541]. 541 - это id поля Сущность в Таблице 2.
Получилось следующее:
1. Если добавлять новую запись, то фильтр не срабатывает. Как я понимаю, записи ещё нет, поэтому сравнивать не с чем. В результате в списке отображаются все записи из таблицы и, получается, есть вероятность привязать новую запись к уже существующей. 2. Если редактировать существующую запись, то фильтр срабатывает, однако, если нажать маленький крестик (например промахнуться вместо выпадающего списка), то, видимо, связь между сущностями разрывается и происходит как на скриншоте выше - появляется список всех записей. Т.е. можно перепривязать текущую запись или создать для неё новую запись.
Вероятно я не до конца разобрался с настройками программы и сделал что-то не так. Подскажите пожалуйста.
Получилось следующее:
1. Если добавлять новую запись, то фильтр не срабатывает. Как я понимаю, записи ещё нет, поэтому сравнивать не с чем. В результате в списке отображаются все записи из таблицы и, получается, есть вероятность привязать новую запись к уже существующей. 2. Если редактировать существующую запись, то фильтр срабатывает, однако, если нажать маленький крестик (например промахнуться вместо выпадающего списка), то, видимо, связь между сущностями разрывается и происходит как на скриншоте выше - появляется список всех записей. Т.е. можно перепривязать текущую запись или создать для неё новую запись.
Вероятно я не до конца разобрался с настройками программы и сделал что-то не так. Подскажите пожалуйста.
- support
- Техническая поддержка
- Сообщения: 9312
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Связь один к одному.
А можете привести практический примере того, что пытаетесь сделать?
Re: Связь один к одному.
Есть объекты с уникальным, для каждого, набором параметров - Сущность 1 и Сущность 2. Есть устройства - Сущность 3, для которых необходимо установить связь с каким-то из объектов. Связь с объектом может меняться. Упрощённая схема реализации этого следующая:
Данная схема вполне рабочая, но у неё есть один серьёзный недостаток - возможность случайного (человеческий фактор) изменения связей между записями Сущность 1 - Сущность 4 и Сущность 2 - Сущность 4, описанный чуть выше.
Таблица Сущность 4 формируется автоматически при добавлении объектов и является как бы сводной таблицей сущностей 1 и 2, в которую записываются наименование объекта и ID таблицы сущности. Через эту таблицу задаётся связь для Сущности 3 и SQL запросом подтягиваются необходимые параметры сущности 1 или 2.Данная схема вполне рабочая, но у неё есть один серьёзный недостаток - возможность случайного (человеческий фактор) изменения связей между записями Сущность 1 - Сущность 4 и Сущность 2 - Сущность 4, описанный чуть выше.
- support
- Техническая поддержка
- Сообщения: 9312
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Связь один к одному.
Ну, человеческий фактор всегда присутствует. Используя доступ к полям можно к примеру запретить редактирования связей.
Re: Связь один к одному.
Если я делаю запрет на изменение поля "Наименование" в Сущности 4, то в форме редактирования существующей записи в Сущности 1 или 2 вместо кнопки "Изменить" появляется кнопка "Добавить", так ещё хуже получается.
Пока пробовал разные варианты настроек, понял, что если как-нибудь скрыть маленький крестик в форме, чтобы нельзя было разорвать существующую связь, и задать SQL условие null то схема начинает работать практически идеально. Можно это как-то реализовать или добавить такой функционал (скрыть кнопку удалить связь)?
Пока пробовал разные варианты настроек, понял, что если как-нибудь скрыть маленький крестик в форме, чтобы нельзя было разорвать существующую связь, и задать SQL условие null то схема начинает работать практически идеально. Можно это как-то реализовать или добавить такой функционал (скрыть кнопку удалить связь)?
- support
- Техническая поддержка
- Сообщения: 9312
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Связь один к одному.
А вы скройте ее с помощью CSS
fields_264 замените на ID вашего поля.
Код: Выделить всё
#fields_264_rendered_value .select2-container--default .select2-selection--single .select2-selection__clear{
display:none
}