Показать сообщение отдельно
Старый 22.08.2022, 18:02   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Технически через метод init() датасорса связать можно кого угодно с кем угодно (метод addLink на QueryBuildDatasource)
Но сразу возникает вопрос - а как хочется, чтобы работал результат?

Пример 1.
Таблица 2 подчинена таблице 1; таблица 3 - также подчинена таблице 1. При перемещении записи на таблице 1 - система автоматом обновляет позиционирование на таблицах 2 и 3 по событию active() на датасорсе таблицы 1

Пример 2.
Таблица 2 подчинена таблице 1; таблица 3 - подчинена таблице 2. При перемещении записи на таблице 1 - система автоматом обновляет позиционирование на таблице 2, а от позиционирования на таблице 2 - обновляется позиционирование на таблице 3.

Теперь вопрос - если таблица 3 подчинена таблице 1 и таблице 2 - в какой момент должно выполняться позиционирование на таблице 3? При перемещении записи на таблице 1 или таблицы 2? И если таблицы 2 - то:
а) как об этом догадается система (для нее все линки равны и подчинение по сути лежит только у нас в головах, а в системе есть только линки)?
б) с учетом условий таблицы 1 или нет?

Т.е. здесь нужно ситуацию свести либо к примеру 1, либо к примеру 2.
Также нельзя забывать, что БД - это не чёрный ящик, а тоже система. И упрощение запросов к ней напрямую влияет на скорость работы системы.
__________________
Возможно сделать все. Вопрос времени