Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 запросы при меняющейся структуре  [new]
вопросик_
Guest
Допустим, есть определенные документы у которых со временем структура "плывет" -
для документа создается новая таблица (или если меняется незначительно - новая subtable с частью изменившихся атрибутов).

Что лучше в этом случае -
1) хранить запросы в базе, с клиента считывать нужную версию
2) отрабатывать такую ситуацию через хранимую процедуру (возвращая ref cursor)
13 ноя 08, 12:56    [6434340]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
alecsey
Member

Откуда: Москва
Сообщений: 830
по поводу варианта 1) думал что такое бывает только на Daily WTF =)
13 ноя 08, 13:02    [6434392]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18371
Не стоит строить метамодели.
Поддержка новых структур документов на клиенте вряд ли ограничится выборкой новых атрибутов - скорее всего, документы меняются вместе с бизнес-логикой, которую надо как-то отражать и на клиенте.

Наилучший способ - все-таки классический: патч структуры сопровождается патчем бизнес-логики и клиентского ПО.
13 ноя 08, 13:06    [6434429]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
вопросик_
Guest
andrey_anonymous
Не стоит строить метамодели.

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

А почему не стоит, если, например, достаточно много запросов вида - найти документы по таким-то несложным критериям и показать содержимое ?
И чем плох вариант с хранимой процедурой ?
13 ноя 08, 13:22    [6434564]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
Bely
Member

Откуда: Москва
Сообщений: 1903
вопросик_
И чем плох вариант с хранимой процедурой ?
Плох тем, что при необходимости отфильтровать результат - может наступить ситуация "Прощай память".
Или "хотел бы использовать индекс, да не могу пропихнуть условие в ХП"

Если у вас Oracle, сам бог велел SQL запросы использовать для получения данных.
13 ноя 08, 13:34    [6434664]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
Bely
Member

Откуда: Москва
Сообщений: 1903
andrey_anonymous
Не стоит строить метамодели.
У него несколько иной случай, похоже.
вот еще его пост
без какой-либо метамодели обойтись будет трудно.
13 ноя 08, 13:36    [6434683]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
вопросик_
Guest
Bely
вопросик_
И чем плох вариант с хранимой процедурой ?
Плох тем, что при необходимости отфильтровать результат - может наступить ситуация "Прощай память".
Или "хотел бы использовать индекс, да не могу пропихнуть условие в ХП"

Немного не понял вас(про использовать индекс). Допустим, есть пачка запросов, которые хранятся в базе. Один из них выбирается клиентом для выполнения (скажем, по дате "актуальности").
Почему бы их (один в один) не прописать эти запросы в хранимой процедуре ?
Из-за увеличивающегося размера пакета ?
13 ноя 08, 13:54    [6434854]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18371
вопросик_
Из-за увеличивающегося размера пакета ?

Из-за неадекватных затрат на последующее сопровождения такой системы.
13 ноя 08, 13:56    [6434869]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
expla
Guest
Если нет жёстких требований к производительности системы, то возможность создавать новые запросы (хотя бы задавать особые предикаты) по мере необходимости весьма желательна. В противном случае пользователь не всегда будет получать то что ему нужно и потом лопатить результат вручную.
13 ноя 08, 14:03    [6434959]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
вопросик_
Guest
andrey_anonymous
вопросик_
Из-за увеличивающегося размера пакета ?

Из-за неадекватных затрат на последующее сопровождения такой системы.

А почему отвергаете вариант хранения самих запросов ? Это же дает дополнительную гибкость против "чистого" изменения клиентской части ?
13 ноя 08, 14:05    [6434980]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
alecsey
Member

Откуда: Москва
Сообщений: 830
я б на вашем месте выбирал в зависимости от требований производительности, что то среднее между
хранения доп атрибутов в отдельной таблице, наподобии
att(att_type_id, att_name, att_data_type ) + document_att( att_type_id, num_value, string_value, data_value)
и вариантом хранения доп атрибутов в xml
13 ноя 08, 14:15    [6435100]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
Bely
Member

Откуда: Москва
Сообщений: 1903
alecsey
и вариантом хранения доп атрибутов в xml
И будете по нему зашибенски потом искать нужные документы...
Уж лучше EAV
13 ноя 08, 16:13    [6436186]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
expla
Guest
Bely
alecsey
и вариантом хранения доп атрибутов в xml
И будете по нему зашибенски потом искать нужные документы...
Уж лучше EAV


А чем ORACLE text опция не устраивает? ИМХО, в комбинации с xml сладкая парочка получается.
13 ноя 08, 16:38    [6436423]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
Bely
Member

Откуда: Москва
Сообщений: 1903
expla
А чем ORACLE text опция не устраивает? ИМХО, в комбинации с xml сладкая парочка получается.
Тем, что это всеравно будет хуже чем EAV, а соответственно смысла нет заморачиваться. К тому же - Oracle Text, насколько помню, переиндексируется вручную.

И как объяснить пользователю "я тут создал документ, ищу его - а поиск его не показывает? И почему я его увижу только завтра сутра?"
13 ноя 08, 18:23    [6437394]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
вопросик_,

полностью поддерживаю посты andrey_anonymous
немного добавлю.
Что будешь делать когда пользователь попросит показать список документов, сохраненных в 3-х разных "версиях"?
13 ноя 08, 18:53    [6437574]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
вопросик_
Guest
Andrey.L
вопросик_,
полностью поддерживаю посты andrey_anonymous
немного добавлю.
Что будешь делать когда пользователь попросит показать список документов, сохраненных в 3-х разных "версиях"?

разные варианты - например, "объединяющий" view и соотв. запрос к нему.
можно тогда встречный вопрос - раз поддерживаете andrey_anonymous, а что вы в таком случае будете делать ?
14 ноя 08, 12:05    [6440074]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
вопросик_
Andrey.L
вопросик_,
полностью поддерживаю посты andrey_anonymous
немного добавлю.
Что будешь делать когда пользователь попросит показать список документов, сохраненных в 3-х разных "версиях"?

разные варианты - например, "объединяющий" view и соотв. запрос к нему.
можно тогда встречный вопрос - раз поддерживаете andrey_anonymous, а что вы в таком случае будете делать ?

можно я отвечу?

первым делом я пошлю лесом того чудотворца, который хочет соединить несоединяемое.
Ну а предоставить результаты для каждого из наборов атрибутов по-жизни одной сущности
должен соответствующий каждому набору функционал
(1.sql / 2.pl/sql / 3.нечто клиентское, содержащее 1 или 1+2)
14 ноя 08, 13:27    [6440862]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
expla
Guest
Bely
И как объяснить пользователю "я тут создал документ, ищу его - а поиск его не показывает? И почему я его увижу только завтра сутра?"


Мы в XXI веке живём и в школе все учились. Покажи пользователю график обновления индекса и скажи что он не найдёт свой документ до тех пор пока не пройдёт очередное обновление. Типа, пусть поиск по ключевым атрибутам использует.
14 ноя 08, 13:28    [6440870]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
вопросик_
Guest
orawish
можно я отвечу?
первым делом я пошлю лесом того чудотворца, который хочет соединить несоединяемое.

поясните, не совсем ясно из контекста ответа - вы против желания пользователя "показать список документов, соединенных в 3-х разных версиях" или против хранения этих версий в разных таблицах или [] ?
14 ноя 08, 13:42    [6440975]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
вопросик_
orawish
можно я отвечу?
первым делом я пошлю лесом того чудотворца, который хочет соединить несоединяемое.

поясните, не совсем ясно из контекста ответа - вы против желания пользователя "показать список документов, соединенных в 3-х разных версиях" или против хранения этих версий в разных таблицах или [] ?

если документ изменил структуру, то (имхо) это уже другой документ.
делать запросы, соединяющие в себе информацию о разных документах, разумеется можно.
это работа такая, неформальная.. ,такая же работа, как и разработка апи, предоставляющего
пользователю для каждого документа его полный атрибутный состав
14 ноя 08, 13:51    [6441056]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
вопросик_
Guest
orawish
если документ изменил структуру, то (имхо) это уже другой документ.

Даже в такой ситуации:
был атрибут(нес определенную информацию,но не самую важную) в документе, потом его убрали, но при этом добавили другой (один) атрибут, при этом пачка остальных остались теми же самыми ?
14 ноя 08, 15:40    [6442170]     Ответить | Цитировать Сообщить модератору
 Re: запросы при меняющейся структуре  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
вопросик_
orawish
если документ изменил структуру, то (имхо) это уже другой документ.

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

Значит забыли как страшный сон, т.е. удалили нафиг этот атрибут.
Если все приняли такое рашение, то и нечего возвращаться к данному атрибуту.
Если нет, то и атрибут должен остаться.

Может быть видоизмениться. Был призак Да\Нет, а стал Да\Нет\Не знаю\Скорее Да\Больше НЕТ. Соответственно старый атрибут нужно переконвертить в новый.

Добавился новый "обязательный" атрибут - всем документам проставь заранее оговоренное значение.
14 ноя 08, 16:16    [6442473]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить