Re[2]: Сложный запрос на простой таблице.
От: PNCHL  
Дата: 19.01.06 18:23
Оценка:
Здравствуйте, wildwind, Вы писали:

ЗХ>>И тут внезапно встает следующая задача: выбрать все obj_id, для которых верны следующие условия:

W>Прям-таки внезапно? О чем думали при проектировании?

У Тома Кайта эта тема давно раскрыта: здесь.

В общем, господа программисты "минус" разработчики, НИКОГДА, НИКОГДА так больше не делайте
Re[3]: Сложный запрос на простой таблице.
От: wildwind Россия  
Дата: 20.01.06 09:08
Оценка: 4 (1)
Здравствуйте, PNCHL, Вы писали:

PNC>У Тома Кайта эта тема давно раскрыта: здесь.

PNC>В общем, господа программисты "минус" разработчики, НИКОГДА, НИКОГДА так больше не делайте

Да собственно никто не сомневался, что это плохой, неудачный дизайн. Но раз уж автору темы от него теперь не деться (как я подозреваю), то почему бы не предложить способы работы с ним.
Re[3]: Сложный запрос на простой таблице.
От: Зверёк Харьковский  
Дата: 23.01.06 19:43
Оценка:
Здравствуйте, PNCHL, Вы писали:

ЗХ>>>И тут внезапно встает следующая задача: выбрать все obj_id, для которых верны следующие условия:

W>>Прям-таки внезапно? О чем думали при проектировании?

PNC>У Тома Кайта эта тема давно раскрыта: здесь.


PNC>В общем, господа программисты "минус" разработчики, НИКОГДА, НИКОГДА так больше не делайте


Не, господа, говорить "это плохой дизайн, потому что запросы неэффективны" я и сам могу. Но никто ведь не предложит альтернативы для случая, когда набор возможных полей у объекта действительно не известен по определению? Предложите более "умный" дизайн — я спасибо скажу.
FAQ — це мiй ай-кью!
Re[4]: Сложный запрос на простой таблице.
От: wildwind Россия  
Дата: 24.01.06 09:40
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Не, господа, говорить "это плохой дизайн, потому что запросы неэффективны" я и сам могу. Но никто ведь не предложит альтернативы для случая, когда набор возможных полей у объекта действительно не известен по определению? Предложите более "умный" дизайн — я спасибо скажу.


XML — если объемы не гигантские. Другое дело, что далеко не все умеют его индексировать. Но ведь выбор SQLite — тоже часть дизайна, не так ли?

Также стоит обратить внимание на не-SQL (и возможно даже нереляционные) дивжки, приспособленные для хранения данных нерегулярной или разреженной структуры.
Например тот же ESE (aka "JET Blue") — кстати бесплатен (встроен в Windows).
(здесь, здесь)
Re[5]: Сложный запрос на простой таблице.
От: Зверёк Харьковский  
Дата: 24.01.06 10:41
Оценка:
Здравствуйте, wildwind, Вы писали:

ЗХ>>Не, господа, говорить "это плохой дизайн, потому что запросы неэффективны" я и сам могу. Но никто ведь не предложит альтернативы для случая, когда набор возможных полей у объекта действительно не известен по определению? Предложите более "умный" дизайн — я спасибо скажу.


W>XML — если объемы не гигантские. Другое дело, что далеко не все умеют его индексировать. Но ведь выбор SQLite — тоже часть дизайна, не так ли?


W>Также стоит обратить внимание на не-SQL (и возможно даже нереляционные) дивжки, приспособленные для хранения данных нерегулярной или разреженной структуры.

W>Например тот же ESE (aka "JET Blue") — кстати бесплатен (встроен в Windows).
W>(здесь, здесь)

Мммм... XML мне тут несимпатичен совершенно (объемы — тысячи, но могут быть и десятки тысяч объектов). Поскольку одно из условий — частая модификация свойств объектов (что приведет к перезаписи всего XML-я).

Вообще говоря, исходная постановка звучит так примерно:
* есть объекты, у них есть текстовые свойства (имя=значение)
* количество свойств у одного объекта — не ограничено (хотя реально, как правило, невелико)
* длина имени, длина значения — неограничены (или ограничены чем-нибудь большим); реально там будет как правило недлинные текстовые строки, но могут быть и очень длинные (например description=<описание объекта на 8 страниц>)

В этих условиях, приближенных к боевым, нужно эффективно выполнять следующие операции:
* добавить объекту новое свойство
* изменить значение существующего свойства
* выбрать список возможных имен свойств
* выбрать список возможных значений свойства с заданным именем
* (то, что было в исходной задаче) выбрать список объектов по заданному набору пар имя=значение.

Вот. Внимание вопрос: какой движок тут подойдет /заметим, что дополнительное требование к движку — легковесность/
FAQ — це мiй ай-кью!
Re[6]: Сложный запрос на простой таблице.
От: wildwind Россия  
Дата: 24.01.06 11:03
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Мммм... XML мне тут несимпатичен совершенно (объемы — тысячи, но могут быть и десятки тысяч объектов). Поскольку одно из условий — частая модификация свойств объектов (что приведет к перезаписи всего XML-я).


Ну конечно я имел в виду не все в одном XML, а каждый объект в своем XML-е.
Re[7]: Сложный запрос на простой таблице.
От: Зверёк Харьковский  
Дата: 24.01.06 11:14
Оценка:
Здравствуйте, wildwind, Вы писали:

ЗХ>>Мммм... XML мне тут несимпатичен совершенно (объемы — тысячи, но могут быть и десятки тысяч объектов). Поскольку одно из условий — частая модификация свойств объектов (что приведет к перезаписи всего XML-я).


W>Ну конечно я имел в виду не все в одном XML, а каждый объект в своем XML-е.


Угу, я уже понял, когда сообщение отправил
Тем не менее, исходную задачу это не сильно облегчает
FAQ — це мiй ай-кью!
Re: Сложный запрос на простой таблице.
От: DmitryMS  
Дата: 24.01.06 18:21
Оценка:
Try 'Transform'? Not sure if your sql supports it... A bit of a vintage stuff...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.