powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оперативный файл и справочники. Автоматизация запросов.
25 сообщений из 154, страница 2 из 7
Оперативный файл и справочники. Автоматизация запросов.
    #35578248
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korda Николай , верно ли, что циклические ссылки - это плохо продуманный дизайн модели данных и без них всегда можно обойтись?
Я не иронизирую, я просто спрашиваю.А как вы собираетесь, например, изображать иерархические справочники? Они ссылаются сами на себя - цикл.
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35578404
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korda Николай1
При построении таблицы ассоциаций необходимо помнить о циклических ссылках и предпринимать меры по избежанию зацикливания.

Николай , верно ли, что циклические ссылки - это плохо продуманный дизайн модели данных и без них всегда можно обойтись?
Я не иронизирую, я просто спрашиваю.

Не видел ни одной базы без циклических ссылок.
Например - филиалы и контрагенты. В циклических ссылках нет проблем.
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35578609
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelyА как вы собираетесь, например, изображать иерархические справочники? Они ссылаются сами на себя - цикл.
Опередили :) Наличие иерархических справочников ставит на все затею жирный крест. На самом деле автору нужно подумать о системе навигации по своим данным.
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579052
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_мод BelyА как вы собираетесь, например, изображать иерархические справочники? Они ссылаются сами на себя - цикл.
Опередили :) Наличие иерархических справочников ставит на все затею жирный крест. На самом деле автору нужно подумать о системе навигации по своим данным.

Я понял, что циклические ссылки - явление совершенно законное и полезное.
Так что, никакого креста... Просто, нужно учесть это. Алиасы для имен таблиц, разве не для подобных случаев выход? Если таблица ссылается на саму себя, то в одном предложении SQL она будет помечена различными алиасами T1 и T2, например. Или я что-то упускаю из вида?
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579243
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начал я анализировать ситуацию с циклическими ссылками...

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

Понятно, что такая таблица, растущая по-горизонтали в бесконечность меня не устраивает.
Этот рост можно искусственно ограничить, ограничив уровень "прилинковки" ссылок каким-то определенным значением. И это значение "напрашивается" быть равным единице. (Потому что, если это будет 2, 3 или 33, будет очень трудно объяснить логику по которой оно выбрано).
Я пишу может быть излишне подробно, чтобы избежать разночтений.

Итак, циклические ссылки ограничены первым уровнем. Это означает, что в таблице "Пассажиры самолета" мы имеем две записи: Иван Иванович, у которого дочь Наташа и запись самой дочери Ивана Ивановича т.е. Наташи. Если у Наташи тоже есть свои дети, то они в записи Ивана Ивановича отображаться не будут, а сама Наташа - будет. Здесь присутствует ещё один аспект. В записи Наташи будут ссылки на различные справочники, так вот, эти ссылки тоже не будут отображаться при выдачи записи Ивана Ивановича. Т.е. об Иване Ивановиче будет выдаваться вся имеющаяся информация, включая то, что у него есть дочь Наташа, но вот, чтобы посмотреть справочные данные этой самой Наташи нужно будет нажать кнопку в GUI, которая и перенесет нас в "мир Наташи".
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579416
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kordaНачал я анализировать ситуацию с циклическими ссылками...

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

Понятно, что такая таблица, растущая по-горизонтали в бесконечность меня не устраивает.
Этот рост можно искусственно ограничить, ограничив уровень "прилинковки" ссылок каким-то определенным значением. И это значение "напрашивается" быть равным единице. (Потому что, если это будет 2, 3 или 33, будет очень трудно объяснить логику по которой оно выбрано).
Я пишу может быть излишне подробно, чтобы избежать разночтений.

Итак, циклические ссылки ограничены первым уровнем. Это означает, что в таблице "Пассажиры самолета" мы имеем две записи: Иван Иванович, у которого дочь Наташа и запись самой дочери Ивана Ивановича т.е. Наташи. Если у Наташи тоже есть свои дети, то они в записи Ивана Ивановича отображаться не будут, а сама Наташа - будет. Здесь присутствует ещё один аспект. В записи Наташи будут ссылки на различные справочники, так вот, эти ссылки тоже не будут отображаться при выдачи записи Ивана Ивановича. Т.е. об Иване Ивановиче будет выдаваться вся имеющаяся информация, включая то, что у него есть дочь Наташа, но вот, чтобы посмотреть справочные данные этой самой Наташи нужно будет нажать кнопку в GUI, которая и перенесет нас в "мир Наташи".Ура!
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579566
Фотография Valentin Kotelnitski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это теоретически. А практически, чтобы что-то написать, самолет должен быть
приземлен. Неконкретно все это.
Почему бы не написать набор своих ручных запросов, как я предлагал?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579663
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kordaНапример, таблица, в которой одно из полей ссылается на другую запись этой-же таблицы, а та, другая запись в свою очередь может ссылаться ещё на какую нибудь запись, опять-же из этой самой таблицы. И так можно линковать "до бесконечности"...
Получается, что количество полей такого запроса в общем случае неопределено и в каком-то смысле зависит от количества записей в таблице.
Для этого придумали иерархические запросы. Например такой (Oracle).
Код: plaintext
1.
2.
3.
4.
5.
SELECT c.id, c.parent_id, c.name, c.is_active
  , sys_connect_by_path(c.name,'/') as path
FROM act_clf c
WHERE c.is_active =  1 
START WITH c.parent_id =  1 
CONNECT BY prior c.id = c.parent_id
Результат

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
ID                                   	PARENT_ID                                     	NAME                                                                         	PATH
810                                   	1                                     	Связь и ИТ                                                                         	/Связь и ИТ
811                                   	810                                   	Ведомственные и корпоративные информационные системы и сети связи                  	/Связь и ИТ/Ведомственные и корпоративные информационные системы и сети связи
812                                   	811                                   	Филиалы, департаменты, отделы ИТ                                                   	/Связь и ИТ/Ведомственные и корпоративные информационные системы и сети связи/Филиалы, департаменты, отделы ИТ
813                                   	811                                   	Отраслевые предприятия информационных систем и сетей связи                         	/Связь и ИТ/Ведомственные и корпоративные информационные системы и сети связи/Отраслевые предприятия информационных систем и сетей связи
814                                   	810                                   	Операторы сетей связи и интернет                                                   	/Связь и ИТ/Операторы сетей связи и интернет
816                                   	814                                   	Операторы фиксированной телефонной связи                                           	/Связь и ИТ/Операторы сетей связи и интернет/Операторы фиксированной телефонной связи
817                                   	814                                   	Операторы сотовой связи                                                            	/Связь и ИТ/Операторы сетей связи и интернет/Операторы сотовой связи
818                                   	814                                   	Интернет провайдеры, Хостинг провайдеры                                            	/Связь и ИТ/Операторы сетей связи и интернет/Интернет провайдеры, Хостинг провайдеры
819                                   	814                                   	Операторы IP-телефонии                                                             	/Связь и ИТ/Операторы сетей связи и интернет/Операторы IP-телефонии
820                                   	814                                   	Call-центры и операторы пейджинговой связи                                         	/Связь и ИТ/Операторы сетей связи и интернет/Call-центры и операторы пейджинговой связи
821                                   	814                                   	Прочее                                                                             	/Связь и ИТ/Операторы сетей связи и интернет/Прочее
890                                   	814                                   	Общее                                                                              	/Связь и ИТ/Операторы сетей связи и интернет/Общее
815                                   	810                                   	Группы компаний и холдинги операторов связи                                        	/Связь и ИТ/Группы компаний и холдинги операторов связи
822                                   	810                                   	Разработка программного обеспечения, АСУ (автоматизированные системы управления)   	/Связь и ИТ/Разработка программного обеспечения, АСУ (автоматизированные системы управления)
823                                   	810                                   	Интеграторы, монтажные и сервисные организации                                     	/Связь и ИТ/Интеграторы, монтажные и сервисные организации
824                                   	823                                   	Системные интеграторы                                                              	/Связь и ИТ/Интеграторы, монтажные и сервисные организации/Системные интеграторы
825                                   	823                                   	Строительно-монтажные организации                                                  	/Связь и ИТ/Интеграторы, монтажные и сервисные организации/Строительно-монтажные организации
826                                   	823                                   	Сервисные организации                                                              	/Связь и ИТ/Интеграторы, монтажные и сервисные организации/Сервисные организации
915                                   	823                                   	Общее                                                                              	/Связь и ИТ/Интеграторы, монтажные и сервисные организации/Общее
827                                   	810                                   	Общее                                                                              	/Связь и ИТ/Общее
100                                   	1                                     	Производство, промышленность                                                       	/Производство, промышленность
792                                   	100                                   	Общее                                                                              	/Производство, промышленность/Общее
828                                   	100                                   	Металлургический комплекс                                                          	/Производство, промышленность/Металлургический комплекс
829                                   	828                                   	Холдинги металлургического комплекса                                               	/Производство, промышленность/Металлургический комплекс/Холдинги металлургического комплекса
830                                   	828                                   	Черная металлургия                                                                 	/Производство, промышленность/Металлургический комплекс/Черная металлургия
831                                   	830                                   	Металлургические комбинаты и заводы                                                	/Производство, промышленность/Металлургический комплекс/Черная металлургия/Металлургические комбинаты и заводы
832                                   	830                                   	Горно-обогатительные комбинаты (ГОК) и горно-рудные предприятия черной металлургии 	/Производство, промышленность/Металлургический комплекс/Черная металлургия/Горно-обогатительные комбинаты (ГОК) и горно-рудные предприятия черной металлургии
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579717
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kordaно вот, чтобы посмотреть справочные данные этой самой Наташи нужно будет нажать кнопку в GUI, которая и перенесет нас в "мир Наташи".
Вот так и должна быть построена вся система навигации без всяких безразмерных таблиц.
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579748
Фотография Valentin Kotelnitski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод!
Может, мы еще, кроме навигации, разберем и систему управления полетами?
Вернемся к нашим баранам. Почему мы абстрагируемся когда пишем нечто
конкретное?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579756
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kordaНачал я анализировать ситуацию с циклическими ссылками...
Вот только я не понял, Наташа то тоже в том же самолете сидит или неважно это автору?
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579823
_mashuta_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть, Вам нужен Hibernate? Он умеет строить SQL-запросы...
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579868
kordaПисать самому такую программу мне страшно. Или мне лишь кажется, что это не просто?

Начинать такую программу лучше после обеда, когда обычно бывает хорошее настроение, тогда как раз к завершению рабочего дня завершите эту программу. Чем страшнее начинать - тем приятнее кончать.
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35579922
Фотография Valentin Kotelnitski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неизветный -
Пустое. Задача крайне непростая...

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35580506
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача состоит в разрезании n-мерного куба на x двухмерных срезов
построить все возможные срезы для существующей модели базы данных возможно, но имеет ли смысл?

в своем проекте я реализовывал три вида ведомостей: бухгалтерские, тмц, основных средств
все они предполагают неограниченную вложенность аналитики, тоесть фактически n-мерный куб
задача получается сходная, справочников может быть каких угодно и сколько угодно, неограниченное количество и все они могут быть тем или иным образом прицеплены к базовой операции (проводке, движению тмц, движению ос)

так вот, фактически определенный набор статических срезов я строю всегда, а остальной неограниченный набор срезов строятся только по запросу, тоесть пользователь должен указать какие срезы он хочет увидеть в результирующей выборке
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35580686
Фотография Valentin Kotelnitski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Lenivec
Он тебя вообще поймет? А если поймет, то хватит ли ему в реале квалификации?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35580827
474
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kotelnitski
2Lenivec
Он тебя вообще поймет? А если поймет, то хватит ли ему в реале квалификации?
Вам корона не жмет?
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35581163
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lenivecзадача состоит в разрезании n-мерного куба на x двухмерных срезов
построить все возможные срезы для существующей модели базы данных возможно, но имеет ли смысл?

в своем проекте я реализовывал три вида ведомостей: бухгалтерские, тмц, основных средств
все они предполагают неограниченную вложенность аналитики, тоесть фактически n-мерный куб
задача получается сходная, справочников может быть каких угодно и сколько угодно, неограниченное количество и все они могут быть тем или иным образом прицеплены к базовой операции (проводке, движению тмц, движению ос)

так вот, фактически определенный набор статических срезов я строю всегда, а остальной неограниченный набор срезов строятся только по запросу, тоесть пользователь должен указать какие срезы он хочет увидеть в результирующей выборке

Ну, типа того.
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35581264
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin KotelnitskiПочему мы абстрагируемся когда пишем нечто конкретное?

Абстракция - лучший способ достичь конкретных результатов :) Автору как раз ее и недостает
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35581664
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valentin Kotelnitski
Почему бы не написать набор своих ручных запросов, как я предлагал?


Моя цель как раз состоит в отказе от "ручных" запросов.
- Писать такие запросы скучно
- Каждый такой запрос нужно отлаживать и проверять отдельно
- Каждый такой запрос нужно поддерживать при добавлении/удалении полей из соответствующих таблиц.
Каждый такой запрос похож на предыдущий, и поэтому написание его представляет собой рутину, так почему бы не автоматизировать этот процесс?

Bely
Для этого придумали иерархические запросы. Например такой (Oracle).


Красиво, конечно, в Оракле...
Но хотелось бы избежать привязки к конкретной СУБД. Я ещё понимаю, когда речь идет о разнице в названии встроенной процедуры получения последнего сгенерированного ключа, или чего-то в этом роде.
Эту разницу не сложно поддержать програмно, обеспечивая тем самым совместимость с большинством БД.

_мод kordaно вот, чтобы посмотреть справочные данные этой самой Наташи нужно будет нажать кнопку в GUI, которая и перенесет нас в "мир Наташи".
Вот так и должна быть построена вся система навигации без всяких безразмерных таблиц.

Т.е. не прилинковывать данные справочников вообще?... Это ведь не то, что Вы хотели сказать, правда?
А если прилинковывать (связывать таблицу со справочниками), то почему-бы не делать это программно?

_mashuta_Может быть, Вам нужен Hibernate? Он умеет строить SQL-запросы...
Может быть... Но вся сложность, в данном случае, не в построении запросов, а в их автоматической генерации.

Lenivecзадача состоит в разрезании n-мерного куба на x двухмерных срезов
построить все возможные срезы для существующей модели базы данных возможно, но имеет ли смысл?


В данном случае нет необходимости в построении всех возможных срезов, пусть этим занимаются специализированные инструменты. Запросы нужны для банальной программы ввода и модификации данных. Все возможные связи между таблицами жестко определены и неизменяются в процессе работы программы.
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35581691
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 korda

либо вы сами себе противоречите, либо сами же не можете понять что конкретно хотите получить
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35581783
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lenivec2 korda

либо вы сами себе противоречите, либо сами же не можете понять что конкретно хотите получить

Я действительно пока не представляю до конца, что конкретно я хочу получить.
Понимание приходит во время дискуссии. На сегодняшний день я представляю себе задачу в следующем виде:

1. Имеется описание таблиц и связей между ними.
1.1 Во всех таблицах PRIMARY KEY - суррогатные, одного типа, генерируемые одним и тем-же методом.
1.2 Во всех таблицах PRIMARY KEY имеют одинаковое имя - ID.

2. Задано, какие поля и из каких таблиц должны присутствовать в запросе:
2.1 Все поля, всех связанных с таблицей справочника.
2.2 Если имеются циклические связи, то они ограничиваются первым уровнем.

3. Программа должна получить описание таблиц и связей между ними и сгенерировать предложения для требуемых SELECT -ов.
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35581802
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Произведение "искусственного интеллекта", в том виде, в каком у него это выходит на сегодняшний вечер.
(Извиняюсь, за полную нечитабельность данного опуса)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
CREATE VIEW W_PERSON AS SELECT 
T0.ID AS A_0__V_PERSON__ID
,T0.TIME_S AS A_1__V_PERSON__TIME_S
,T0.TIME_E AS A_2__V_PERSON__TIME_E
,T0.USER AS A_3__V_PERSON__USER
,T0.NAME AS A_4__V_PERSON__NAME
,T0.AGE AS A_5__V_PERSON__AGE
,T0.WORKPLACE1_ID AS A_6__V_PERSON__WORKPLACE1_ID
,T0.WORKPLACE2_ID AS A_7__V_PERSON__WORKPLACE2_ID
,T0.WORKPLACE2_TWO_ID AS A_8__V_PERSON__WORKPLACE2_TWO_ID
,T0.OTHER_PERSON_ID AS A_9__V_PERSON__OTHER_PERSON_ID
,T1.ID AS A_10__W_WORKPLACE1__ID
,T1.TIME_S AS A_11__W_WORKPLACE1__TIME_S
,T1.TIME_E AS A_12__W_WORKPLACE1__TIME_E
,T1.USER AS A_13__W_WORKPLACE1__USER
,T1.TYPE AS A_14__W_WORKPLACE1__TYPE
,T2.A_0__V_WORKPLACE2__ID AS A_15__W_WORKPLACE2__A_0__V_WORKPLACE2__ID
,T2.A_1__V_WORKPLACE2__TIME_S AS A_16__W_WORKPLACE2__A_1__V_WORKPLACE2__TIME_S
,T2.A_2__V_WORKPLACE2__TIME_E AS A_17__W_WORKPLACE2__A_2__V_WORKPLACE2__TIME_E
,T2.A_3__V_WORKPLACE2__USER AS A_18__W_WORKPLACE2__A_3__V_WORKPLACE2__USER
,T2.A_4__V_WORKPLACE2__TYPE AS A_19__W_WORKPLACE2__A_4__V_WORKPLACE2__TYPE
,T2.A_5__V_WORKPLACE2__ZAVAL_ID AS A_20__W_WORKPLACE2__A_5__V_WORKPLACE2__ZAVAL_ID
,T2.A_6__W_ZAVAL__ID AS A_21__W_WORKPLACE2__A_6__W_ZAVAL__ID
,T2.A_7__W_ZAVAL__TIME_S AS A_22__W_WORKPLACE2__A_7__W_ZAVAL__TIME_S
,T2.A_8__W_ZAVAL__TIME_E AS A_23__W_WORKPLACE2__A_8__W_ZAVAL__TIME_E
,T2.A_9__W_ZAVAL__USER AS A_24__W_WORKPLACE2__A_9__W_ZAVAL__USER
,T2.A_10__W_ZAVAL__SIZE AS A_25__W_WORKPLACE2__A_10__W_ZAVAL__SIZE
,T3.A_0__V_WORKPLACE2__ID AS A_26__W_WORKPLACE2__A_0__V_WORKPLACE2__ID
,T3.A_1__V_WORKPLACE2__TIME_S AS A_27__W_WORKPLACE2__A_1__V_WORKPLACE2__TIME_S
,T3.A_2__V_WORKPLACE2__TIME_E AS A_28__W_WORKPLACE2__A_2__V_WORKPLACE2__TIME_E
,T3.A_3__V_WORKPLACE2__USER AS A_29__W_WORKPLACE2__A_3__V_WORKPLACE2__USER
,T3.A_4__V_WORKPLACE2__TYPE AS A_30__W_WORKPLACE2__A_4__V_WORKPLACE2__TYPE
,T3.A_5__V_WORKPLACE2__ZAVAL_ID AS A_31__W_WORKPLACE2__A_5__V_WORKPLACE2__ZAVAL_ID
,T3.A_6__W_ZAVAL__ID AS A_32__W_WORKPLACE2__A_6__W_ZAVAL__ID
,T3.A_7__W_ZAVAL__TIME_S AS A_33__W_WORKPLACE2__A_7__W_ZAVAL__TIME_S
,T3.A_8__W_ZAVAL__TIME_E AS A_34__W_WORKPLACE2__A_8__W_ZAVAL__TIME_E
,T3.A_9__W_ZAVAL__USER AS A_35__W_WORKPLACE2__A_9__W_ZAVAL__USER
,T3.A_10__W_ZAVAL__SIZE AS A_36__W_WORKPLACE2__A_10__W_ZAVAL__SIZE
,T4.ID AS A_37__V_PERSON__ID
,T4.TIME_S AS A_38__V_PERSON__TIME_S
,T4.TIME_E AS A_39__V_PERSON__TIME_E
,T4.USER AS A_40__V_PERSON__USER
,T4.NAME AS A_41__V_PERSON__NAME
,T4.AGE AS A_42__V_PERSON__AGE
,T4.WORKPLACE1_ID AS A_43__V_PERSON__WORKPLACE1_ID
,T4.WORKPLACE2_ID AS A_44__V_PERSON__WORKPLACE2_ID
,T4.WORKPLACE2_TWO_ID AS A_45__V_PERSON__WORKPLACE2_TWO_ID
,T4.OTHER_PERSON_ID AS A_46__V_PERSON__OTHER_PERSON_ID
 FROM V_PERSON AS T0
 LEFT JOIN W_WORKPLACE1 AS T1 ON (T1.ID=T0.WORKPLACE1_ID)
 LEFT JOIN W_WORKPLACE2 AS T2 ON (T2.A_0__V_WORKPLACE2__ID=T0.WORKPLACE2_ID)
 LEFT JOIN W_WORKPLACE2 AS T3 ON (T3.A_0__V_WORKPLACE2__ID=T0.WORKPLACE2_TWO_ID)
 LEFT JOIN V_PERSON AS T4 ON (T4.ID=T0.OTHER_PERSON_ID)

В этом примере таблица PERSON связана с двумя справочниками WORKPLACE1 и WORKPLACE2.
При этом на WORKPLACE1 есть одна связь, а на WORKPLACE2 - две. Справочник WORKPLACE2, в свою очередь, связан со справочником ZAVAL.
Помимо этого, таблица PERSON ссылается на саму себя.
Именно это и отражает данный VIEW .

P. S. Может быть есть ещё ситуации, которые я не учел?
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35581918
korda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Об именах полей.

Первое, что бросается в глаза при просмотре сгенерированного запроса, приведенного выше - это невообразимо длинные и трудночитаемые имена полей.
Этот эффект имеет место быть вследствие того, что имя алиаса генерируется на основании имени соответствующей таблицы и собственно имени поля. Сылка на ссылку, таким образом наследует имя из ссылаемой таблице, так что результирующий алиас автоматически включает её в свое назавние. Такой подход позволяет избежать проблем с уникальностью алиасов в пространстве имен всех таблиц системы.

Существует ещё одна, перекликающаяся с именами полей, проблема, которая уже обсуждалась в этой теме. Это отображаемые для конечного пользователя имена полей такого объединения. Ниже приведена выдержка из сообщения, посвященного именам полей:

korda Об отображаемых пользователю текстах(именах) полей.

Анализирую ситуацию с текстом полей и прихожу к выводу, что текст поля, в случае развернутого запроса (таблица, с прилинкованными полями справочников) не может быть задан в описании поля при создании таблицы. Так, если таблица Заказы имеет несколько связей со справочником Адреса, то нужно каким-то образом указать, что это поле - суть адрес клиента, а то - адрес исполнителя. Получается, что для каждого поля объединения нужен свой уникальный, рукотворный текст типа "Адрес клиента" и "Адрес исполнителя"

Исходя из всего вышесказанного приходят на ум две вещи:

1. Отображаемые пользователю имена полей не ммогут задаваться в контексте описания полей физической таблицы, а должны быть заданы в контексте описания полей результата. Т.е. помимо описания исходных таблиц должно быть описание полей результатов запросов.

2. Эти описания результатов запросов должны содержать ссылки на ключи в текстовом файле (на стороне клиента), который ответственен за трансляцию текстов на разные языки. Кроме таких ссылок описание может содержать имя используемое в качестве алиса поля в результирующем view .

Таким образом имена полей не будут представлять собой (как это имеет место быть в приведенном выше примере) генерируемые строки, а будут частью метаданных, которые будут поставляться генератору. Естественно, в этом случае возникает проблема уникальности алиаса. Нужно будет "вручную" следить, чтобы алиасы не "перекрывали" друг друга при генерации результирующего запроса, что не есть хорошо. Может быть у кого-нибудь есть идея лучше?
...
Рейтинг: 0 / 0
Оперативный файл и справочники. Автоматизация запросов.
    #35581971
Фотография Valentin Kotelnitski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kordaМоя цель как раз состоит в отказе от "ручных" запросов.
- Писать такие запросы скучно
- Каждый такой запрос нужно отлаживать и проверять отдельно
- Каждый такой запрос нужно поддерживать при добавлении/удалении полей из соответствующих таблиц.
Каждый такой запрос похож на предыдущий, и поэтому написание его представляет собой рутину, так почему бы не автоматизировать этот процесс?
Это понятно, что лень двигает прогресс...

kordaПроизведение "искусственного интеллекта", в том виде, в каком у него это выходит на сегодняшний вечер.
(Извиняюсь, за полную нечитабельность данного опуса)
Вот именно, это совершенно нечитаемо...
...
Рейтинг: 0 / 0
25 сообщений из 154, страница 2 из 7
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оперативный файл и справочники. Автоматизация запросов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]