Страница 1 из 1
Связанные связи
Добавлено: 16 июн 2016, 10:58
tommy.felt
Добрый день!
Есть сущность "дом", она связана с сущностью "двор", которая связана с сущностью "квартал".
Как сделать так, чтобы на странице дома отображался квартал, к которому принадлежит двор?
В конечном итоге хотелось бы создать следующую цепочку:
Подъезд -- Дом -- Двор -- Квартал -- Микрорайон -- Округ -- Город
Спасибо.
Re: Связанные связи
Добавлено: 16 июн 2016, 11:27
support
Вопрос не ясен, предоставьте скриншоты где и что нужно отображать, пожалуйста.
Re: Связанные связи
Добавлено: 16 июн 2016, 12:52
tommy.felt
support писал(а):Вопрос не ясен, предоставьте скриншоты где и что нужно отображать, пожалуйста.
Re: Связанные связи
Добавлено: 16 июн 2016, 18:06
nikorn
Эта тема в разных ипостасях здесь уже несколько раз обсуждалась. Я для себя на сегодняшний день сделал следующие выводы.
1) Если есть возможность, то лучше использовать вложенные сущности, а не связи (так как вложенная сущность - это связь "один ко многим", а связь - это "один к одному")
2) Вложенность сущностей не должна быть более двух, то есть Микрорайон->Дом->Подъезд. В противном случае картина начинает рассыпаться.
3) Если п. 1 выполнить не получается, то нужно менять логику программы, отбрасывая не нужное и объединяя близкие сущности. Например, у меня была цепочка Контрагент->Юридическое лицо->Договор->Спецификация->Накладная. И это было ужасно. В результате удалось все свести к цепочке Контрагент->Заказ->Документ
4) Если ни п. 1, ни п. 2 выполнить не удается, то нужно ждать, когда автор реализует иерархический просмотр.

Re: Связанные связи
Добавлено: 16 июн 2016, 22:34
support
nikorn писал(а):
1) Если есть возможность, то лучше использовать вложенные сущности, а не связи (так как вложенная сущность - это связь "один ко многим"....
Все верно. Я как раз сейчас занимаюсь видео-обзором где расскажу какие связи есть и как создать приложение на примере с нуля и где какие связи лучше применять в конкретном случаи.
Что касается "Подъезд -- Дом -- Двор -- Квартал -- Микрорайон -- Округ -- Город" то так сложно что то советовать. Нужно знать реальные данные и то как они меняются. Может что то можно вынести в глобальные списки, что то как вложенная сущность, а что то связать используя поле Сущность.
Re: Связанные связи
Добавлено: 17 июн 2016, 13:02
tommy.felt
support писал(а):nikorn писал(а):
1) Если есть возможность, то лучше использовать вложенные сущности, а не связи (так как вложенная сущность - это связь "один ко многим"....
Что касается "Подъезд -- Дом -- Двор -- Квартал -- Округ -- Микрорайон -- Город" то так сложно что то советовать. Нужно знать реальные данные и то как они меняются. Может что то можно вынести в глобальные списки, что то как вложенная сущность, а что то связать используя поле Сущность.
Хочется, чтобы человек зашедший на страницу своего дома осознал сопричастность к другим локальным сообществам.
Для этого нужно выводить на нее все вышеперечисленные сущности.
Прелесть связанных сущностей в том, что они соотносятся друг с другом, это очень удобно.
Если ими не пользоваться получится, что каждому из 800 (в перспективе) домов заполнять заполнять по 4 поля с сущностями, и потом еще в каждую из них добавить этот дом, что нереально.
Было бы здорово связать округа с микрорайонами, кварталы с округами, дворы с кварталами, и чтобы оставалось только добавить дом ко двору и вся цепочка автоматически выстраивалась.
Вложенные сущности не получится использовать из-за того, что получается очень странная иерархия:
- Город
-- Предложения
-- Голосвания
-- Микрорайоны
--- Предложения
--- Голосования
--- Округа
---- Предложения
---- Голосования
---- Кварталы
------ Предложения
------ Голосования
------ Дворы
------- etc...
И самое страшное, эти неравнозначные подсущности будут выводиться в одном навбаре, а так выводятся в отдельном блоке.
Поэтому пока я склоняюсь к тому, чтобы написать костыль, для специального отображения связей на определенных страницах.
Re: Связанные связи
Добавлено: 17 июн 2016, 13:05
nikorn
Для адресов (город, микрорайон, квартал, улица, двор, дом, подъезд), думаю, правильно было бы использовать глобальный список. Причем, его, наверное, можно подтянуть из всероссийского справочника КЛАДР.
Re: Связанные связи
Добавлено: 17 июн 2016, 13:22
support
Предлагаю ознакомится с видео-обзором где я подробно, на примере, рассказал какие связи есть и как их можно использовать и затронул тему с большим количеством вложенных сущноестей.
https://youtu.be/bRK56gkz6zA
Никита верно говорит, кое что можно поместить в общие списки, кое что как отдельные сущности и связать полем Сущность...
Re: Связанные связи
Добавлено: 17 июн 2016, 13:33
tommy.felt
nikorn писал(а):Для адресов (город, микрорайон, квартал, улица, двор, дом, подъезд), думаю, правильно было бы использовать глобальный список. Причем, его, наверное, можно подтянуть из всероссийского справочника КЛАДР.
Адреса да.
Некоторой проблемой является отсутствие импорта списков, но думаю это можно решить напрямую в БД.
+ тут я уже плюсовал возможность подгружать поля в зависимости от ранее выбраного значения...
Однако, на самом деле это не так важно, ибо в ту же ГИС ЖКХ импортируется только индефикатор ФИАС, а адрес пишется в свободной форме, но, конечно стоит добавить, для аккуратности оформления.
Но главное, почему нужны именно сущности -- это то, что каждый двор, квартал, округ являются локальными сообществами со своими обсуждениями и задачами.)
Re: Связанные связи
Добавлено: 17 июн 2016, 14:05
tommy.felt
support писал(а):Предлагаю ознакомится с видео-обзором где я подробно, на примере, рассказал какие связи есть и как их можно использовать и затронул тему с большим количеством вложенных сущноестей.
https://youtu.be/bRK56gkz6zA
Видео будет очень полезно новым пользователям, и сэкономило бы один мой рабочий день.
Сначала я избегал поле сущность, ибо с ходу не совсем понятно, и пытался сделать через вложеность, но быстро понял, что это неверный путь и переструктурировал приложение.
Единственный момент: у меня группы сотрудников -- отдельная сущность, у которой есть подсущность Задачи.
И получается, что руководитель на главной странице нажимет кнопку "Добавить задачу" и ему сразу предлагается группа, кому ее назначить.