Страница 1 из 1

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

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

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

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

И вот как связать эти таблицы я не могу понять - пробовал поле связь, но возможно, как-то неправильно. Или может быть вообще нужно как-то логику в моей ситуации по-другому организовывать?

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

Добавлено: 20 апр 2022, 15:42
believe
Набросайте в демо, нагляднее будет

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

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

Для версии 3.2 запланирован конструктор отчетов, там можно будет создавать свои запросы и возможностей появится больше.

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

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

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

Добавлено: 21 апр 2022, 15:08
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';");

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

Добавлено: 22 апр 2022, 08:24
support
Можно выполнить PHP скрипт при удалении записи и так же по условию удалять:
https://docs.rukovoditel.net.ru/index.p ... apis%CA%B9

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

Добавлено: 22 апр 2022, 09:22
nruslan2
имхо дублировать данные в системе СУБД плохая идея, вся суть субд в том что данные лежат в одном месте и к ним обращаются, а дублировать при вводе, удалять и изменять данные с повторение плохая идея!

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

Добавлено: 22 апр 2022, 12:47
AntonZ
Согласен, но не могу придумать как согласовать логику приложения со своими задачами и возможностями :)

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

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