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

Связь 1 - много

СообщениеДобавлено: Чт фев 04, 2010 3:56 pm
ribamuka
Каким образом я могу в ананасе реализовать связть один-ко-многим.

Например один клиент, а у него 10 банков.

Re: Связь 1 - много

СообщениеДобавлено: Чт фев 04, 2010 4:13 pm
anton
Создаёшь в справочнике "Банки" поле "Владелец" типа "Catalogue.Клиент". Есть простенькая бизнес-схемка, демонстрирующая работу с подчинёнными справочниками, присоединяю.

Re: Связь 1 - много

СообщениеДобавлено: Чт фев 04, 2010 7:58 pm
ribamuka
У приведенного тобой примера есть ограничение.
Не возможно один и тоже банк назначить нескольким клиентам.
можно конечно извратиться и вбивать дублирующиеся банки.

По исходникам Ананаса видно, что авторы начали добавлять данную возможность, но так и не доделали.

Об этом говорит поле ido в таблице каждого справочника и метод справочника selectByOwner.

Re: Связь 1 - много

СообщениеДобавлено: Пт фев 05, 2010 10:36 am
anton
ribamuka писал(а):У приведенного тобой примера есть ограничение.
Не возможно один и тоже банк назначить нескольким клиентам.
можно конечно извратиться и вбивать дублирующиеся банки.

Решение очевидно - создаётся промежуточный справочник. Вообще не понятно зачем именно банк указывать, когда логичней р/с, а уж к р/с привязывать банк.

Re: Связь 1 - много

СообщениеДобавлено: Пт фев 05, 2010 11:09 am
ribamuka
Да, можно создать промежуточную таблицу. Но проблем опять не оберешься:

1. Следить за внешними ключами придется самому.
2. Будут ситуации при которых данные из таблиц удалены, а из промежуточной - забыли удалить.
3. Нет GUI компонентов, которым можем назначить все три таблицы и получить удобную навигацию.

Я думаю вариант один - дописать, то что не доделали ананасовцы.

Re: Связь 1 - много

СообщениеДобавлено: Чт апр 22, 2010 3:20 pm
Selector
один клиент - много банков, один банк - к нескольким клиентам, это собственно связь многие ко многим, а не 1 ко многим и по теории баз данных разрешается промежуточной таблицей для избежания тех вопросов, которые вы означили... Матчасть ))) Ананас я только начал смотреть, но имхо, если есть тип данных - ссылка, то видимо как то там должна решаться целостность ключей... если нет - то вот это место и стоит поправить

Re: Связь 1 - много

СообщениеДобавлено: Чт сен 09, 2010 1:03 am
glilya
anton писал(а):Создаёшь в справочнике "Банки" поле "Владелец" типа "Catalogue.Клиент". Есть простенькая бизнес-схемка, демонстрирующая работу с подчинёнными справочниками, присоединяю.


А где можно скачать эту схемку ? Присоединенный файл в этом посту я не вижу