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

- Сообщения: 449
- Зарегистрирован: 09 янв 2020, 11:49
- Имя: Владимир
- Откуда: Тверь
- Организация: ООО "ВебСофт"
Re: Организация связи между вложенными сущностями
Набросайте в демо, нагляднее будет
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Организация связи между вложенными сущностями
Посмотрите как реализован склад https://www.rukovoditel.net.ru/database ... .php?id=31
Это не совсем то что вам нужно, но может натолкнет на какие то идеи.
Обычно есть склад товаров (КАРТРИДЖИ) - это отдельная сущность.
И для товаров в заказе создается свое сущность.
Для версии 3.2 запланирован конструктор отчетов, там можно будет создавать свои запросы и возможностей появится больше.
Это не совсем то что вам нужно, но может натолкнет на какие то идеи.
Обычно есть склад товаров (КАРТРИДЖИ) - это отдельная сущность.
И для товаров в заказе создается свое сущность.
Для версии 3.2 запланирован конструктор отчетов, там можно будет создавать свои запросы и возможностей появится больше.
Re: Организация связи между вложенными сущностями
Спасибо за ответы. "Склад" попробую еще раз проанализировать.
Залил свою базу в демо - вот доступ, наверно и правда так нагляднее
Имя пользователя: AntZaitsev
Пароль: (E$ay
https://pdemo.rukovoditel.pro/3.1/index ... mo_id=1218
Залил свою базу в демо - вот доступ, наверно и правда так нагляднее
Имя пользователя: AntZaitsev
Пароль: (E$ay
https://pdemo.rukovoditel.pro/3.1/index ... mo_id=1218
Re: Организация связи между вложенными сущностями
В общем, не знаю насколько это корректно. Добавил в форму РАБОТЫ ПО КАРТРИДЖАМ В ЗАКАЗЕ поле с 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';");
В принципе все работает, единственно вопрос - как сделать чтобы при удалении работы из РАБОТЫ ПО КАРТРИДЖАМ В ЗАКАЗЕ работа удалялась и из таблицы РАБОТЫ ПО КАРТРИДЖАМ. Т.е. добавить обратное событие?
Вот код, которым добавляю строчку
//Заносим в переменные значения из формы Работы по картриджам в заказе
$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: Организация связи между вложенными сущностями
Можно выполнить PHP скрипт при удалении записи и так же по условию удалять:
https://docs.rukovoditel.net.ru/index.p ... apis%CA%B9
https://docs.rukovoditel.net.ru/index.p ... apis%CA%B9
Re: Организация связи между вложенными сущностями
имхо дублировать данные в системе СУБД плохая идея, вся суть субд в том что данные лежат в одном месте и к ним обращаются, а дублировать при вводе, удалять и изменять данные с повторение плохая идея!
Re: Организация связи между вложенными сущностями
Согласен, но не могу придумать как согласовать логику приложения со своими задачами и возможностями 
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Организация связи между вложенными сущностями
Ну это не догма. Случаи бывают разные. Иногда для статистики нужно дублировать финальный результат, потому что каждый раз считать по формулам, может быть накладно для сервера, если данных много.имхо дублировать данные в системе СУБД плохая идея,