Организация связи между вложенными сущностями

Все вопросы/проблемы по установке и использовании.
Ответить
AntonZ
Сообщения: 35
Зарегистрирован: 18 апр 2022, 14:42
Имя: Антон
Откуда: Россия

Организация связи между вложенными сущностями

Сообщение AntonZ »

Добрый день!
Пытаюсь понять, смогу ли я подогнать Руководителя под свои нужды -

Есть сущность КАРТРИДЖИ, у нее вложенная сущность РАБОТЫ ПО КАРТРИДЖАМ
Также есть сущность ЗАКАЗЫ, у нее есть вложенная сущность КАРТРИДЖИ В ЗАКАЗЕ, внутри которой сущность РАБОТЫ ПО КАРТРИДЖАМ В ЗАКАЗЕ.

Чтобы бы я хотел -
создаем заказ, выбираем клиента (это отдельные сущности, тут мне понятно), далее по уникальному номеру вносим картридж в заказ (он выбирается или добавляется из сущности КАРТРИДЖИ), далее вносим выполненные работы по картриджу в заказе.
Тут все хорошо, но мне нужно, чтобы я мог в любой момент зайти в раздел КАРТРИДЖИ (сущность КАРТРИДЖИ), выбрать там картридж по уникальному номеру и увидеть все работы по данному картриджу, независимо от заказов (именно работы, а не заказы, связанные с этим картриджем).
И вот с этим возникает проблема - получается работы, занесенные через ЗАКАЗЫ, находятся в сущности РАБОТЫ ПО КАРТРИДЖАМ В ЗАКАЗЕ, а чтобы увидеть все работы по картриджам через раздел КРТРИДЖИ, они должны дублироваться или быть как-то связаны с сущностью РАБОТЫ ПО КАРТРИДЖАМ.

И вот как связать эти таблицы я не могу понять - пробовал поле связь, но возможно, как-то неправильно. Или может быть вообще нужно как-то логику в моей ситуации по-другому организовывать?
believe
Инвестор
Инвестор
Сообщения: 449
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Re: Организация связи между вложенными сущностями

Сообщение believe »

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

Re: Организация связи между вложенными сущностями

Сообщение support »

Посмотрите как реализован склад https://www.rukovoditel.net.ru/database ... .php?id=31
Это не совсем то что вам нужно, но может натолкнет на какие то идеи.
Обычно есть склад товаров (КАРТРИДЖИ) - это отдельная сущность.
И для товаров в заказе создается свое сущность.

Для версии 3.2 запланирован конструктор отчетов, там можно будет создавать свои запросы и возможностей появится больше.
AntonZ
Сообщения: 35
Зарегистрирован: 18 апр 2022, 14:42
Имя: Антон
Откуда: Россия

Re: Организация связи между вложенными сущностями

Сообщение AntonZ »

Спасибо за ответы. "Склад" попробую еще раз проанализировать.
Залил свою базу в демо - вот доступ, наверно и правда так нагляднее
Имя пользователя: AntZaitsev
Пароль: (E$ay
https://pdemo.rukovoditel.pro/3.1/index ... mo_id=1218
AntonZ
Сообщения: 35
Зарегистрирован: 18 апр 2022, 14:42
Имя: Антон
Откуда: Россия

Re: Организация связи между вложенными сущностями

Сообщение AntonZ »

В общем, не знаю насколько это корректно. Добавил в форму РАБОТЫ ПО КАРТРИДЖАМ В ЗАКАЗЕ поле с PHP кодом, которым вношу в таблицу РАБОТЫ ПО КАРТРИДЖАМ данные о работах из РАБОТЫ ПО КАРТРИДЖАМ В ЗАКАЗЕ.
В принципе все работает, единственно вопрос - как сделать чтобы при удалении работы из РАБОТЫ ПО КАРТРИДЖАМ В ЗАКАЗЕ работа удалялась и из таблицы РАБОТЫ ПО КАРТРИДЖАМ. Т.е. добавить обратное событие?

Вот код, которым добавляю строчку
//Заносим в переменные значения из формы Работы по картриджам в заказе
$barcodevzakaze = [419];
$date_added = [date_added];
$created_by = [created_by];
$field_416 = [427];
$field_417 = [428];

//Добавляем в таблицу Работы по картриджам новую строку с полученными данными (делается для того, чтобы все работы по конкретному картриджу можно было посмотреть в разделе Картриджи)
$info_query = db_query("INSERT INTO app_entity_46 SET date_added='$date_added', created_by='$created_by', field_416='$field_416', field_417='$field_417', parent_item_id='$barcodevzakaze';");
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Организация связи между вложенными сущностями

Сообщение support »

Можно выполнить PHP скрипт при удалении записи и так же по условию удалять:
https://docs.rukovoditel.net.ru/index.p ... apis%CA%B9
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Организация связи между вложенными сущностями

Сообщение nruslan2 »

имхо дублировать данные в системе СУБД плохая идея, вся суть субд в том что данные лежат в одном месте и к ним обращаются, а дублировать при вводе, удалять и изменять данные с повторение плохая идея!
AntonZ
Сообщения: 35
Зарегистрирован: 18 апр 2022, 14:42
Имя: Антон
Откуда: Россия

Re: Организация связи между вложенными сущностями

Сообщение AntonZ »

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

Re: Организация связи между вложенными сущностями

Сообщение support »

имхо дублировать данные в системе СУБД плохая идея,
Ну это не догма. Случаи бывают разные. Иногда для статистики нужно дублировать финальный результат, потому что каждый раз считать по формулам, может быть накладно для сервера, если данных много.
Ответить