|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Необходима СУБД, удовлетворящая следующим требованиям (вкратце): пользователь с помощью графического интерфейса добавляет информацию о любых предметах (сущностях) (дом(номер дома количество квартир...), автомобиль (масса, макс. скорость, цена...), стиральная машинка (объем, энергопотребление, цвет...)), а затем может работать с этими сущностями: — добавлять-редактировать экземпляры (записи, данные); — создавать связи между сущностями (при удалении информации о доме, удяляется вся информация о стиралках, установленных в нем); — составлять запросы к этим сущностям, например: «найти все зеленые стиральные машины в квартирах домов с четными номерами на 5-м этаже» (с помощью QBE, либо, в особых случаях, с помощью встроенного языка запросов СУБД). Т.е. что то наподобие Акссесса, но более легкое и простое. Т.е. физическое создание реляционных таблиц для каждой пользовательской сущности не самый лучший вариант. Планируется WEB-интерфейс. Я уже озадачивался этим вопросом и даже остановился на вот таком решении — habrahabr.ru/post/164803/ (вкратце: хранить экземпляры сущностей в одной таблице в формате xml, и делать к ним sql-запросы с использованием xpath). Вроде все неплохо, но криво получается реализация связей между сущностями (приходится использовать вспомогательную таблицу для хранения соответствий, либо заивать ключи в xml). Но недавно в очередной раз наткнулся на Neo4j и подумываю, чтобы заюзать ее. Подскажите, может ли она подойти к подобной задаче? Какие есть другие варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 09:29 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НКакие есть другие варианты? Эта задача вполне укладывается в EAV на любой СУБД, но тебе стоит посмотреть на Cache. Оно как раз пропагандируется для таких структур. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 11:36 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovМаксим НКакие есть другие варианты? Эта задача вполне укладывается в EAV на любой СУБД, но тебе стоит посмотреть на Cache. Оно как раз пропагандируется для таких структур. Про EAV согласен, но в моем случае мало подходит. Cache это круто конечно, а что-нибудь для бедных? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 14:54 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НПро EAV согласен, но в моем случае мало подходит. Да ну? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 15:02 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovМаксим НПро EAV согласен, но в моем случае мало подходит. Да ну? Планируется построение довольно сложных запросов к пользовательским сущностям (несколько уровней вложенности, фильтры и т.д.). Причем как с использованием QBE, так и руками пользователей. С EAV это конечно возможно, но запросы будут гораздо сложнее, их тяжело поддерживать и оптимизировать. Не все радужно с индексированием. Тогда как, используя xml, можно проиндексировать элементы нужной сущности. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 16:19 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НС EAV это конечно возможно, но запросы будут гораздо сложнее С какого бы перепугу? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 17:28 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovМаксим НС EAV это конечно возможно, но запросы будут гораздо сложнее С какого бы перепугу? Не хотелось бы устраивать очередную EAV'шную баталию... Инфы много, мне нравится например эта статья - https://www.simple-talk.com/opinion/opinion-pieces/bad-carma/ Т.е. для того чтобы банально приджойнить пару таблиц и выбрать несколько полей (3 строчки, как бы это было в нормальной реляционке), нужно написать гораздо больше кода. Неговоря уже о сложных запросах. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 19:39 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НТ.е. для того чтобы банально приджойнить пару таблиц и выбрать несколько полей (3 строчки, как бы это было в нормальной реляционке), нужно написать гораздо больше кода. Ну, если головной мозг имеет размер и консистенцию грецкого ореха, как у автора статьи, то конечно. Есть у застарелых кодеров такая привычка забивать шурупы молотком, потому что они 20 лет работали с гвоздями. Если бы он не стремился маниакально разворачивать данные "вширь", то его второй запрос имел бы точно такой же размер, как и первый. И выполнялся бы так же быстро. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 20:19 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, На ты бы рассказал, например, как "с развернутыми на 90 градусов" данными задействовать серверную сортировку. А то все обзываешься только. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2013, 23:36 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
vvmНа ты бы рассказал, например, как "с развернутыми на 90 градусов" данными задействовать серверную сортировку. С одноколоночным резалт-сетом и рассказывать нечего. А для многоколоночных клиентская сортировка более user-friendly. Сам же знаешь: все хотят чтобы кликнул на заголовок грида, а оно взяло и отсортировалось по этому столбцу. А те кто не хотят просто слишком запуганы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 00:15 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovvvmНа ты бы рассказал, например, как "с развернутыми на 90 градусов" данными задействовать серверную сортировку. С одноколоночным резалт-сетом и рассказывать нечего. А для многоколоночных клиентская сортировка более user-friendly. Сам же знаешь: все хотят чтобы кликнул на заголовок грида, а оно взяло и отсортировалось по этому столбцу. А те кто не хотят просто слишком запуганы. Какой ты скользкий... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 01:20 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим Н, QBE - это для дураков-юзеров образца 1970 года. Визуальные построители фильтров куда удобнее и продуктивнее. А кодер один черт sql использовать должен. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 02:51 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
vvmМаксим Н, QBE - это для дураков-юзеров образца 1970 года. Визуальные построители фильтров куда удобнее и продуктивнее. А кодер один черт sql использовать должен. Если не сложно покажите ссыль какую-нибудь с примером, как это может выглядеть? Извиняюсь за глупый вопрос, а как можно реализовать мехнизм связи между сущностями(таблицами) с помощью "построителей фильтров"? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 08:32 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А для многоколоночных клиентская сортировка более user-friendly... На ЕАВе "клинтская " более user-friendly? На ЕАВе, наверное, во многих случаях "клинтская " более user-friendly. Наверное, термин "клиентская" лучше заменить "циклами" так как, с одной стороны, запросы тоже запускаются в общем-то с клиентов, а с другой основная разница именно в том: нужно или нет для получения результата писать циклы. Dimitry Sibiryakov .А те кто не хотят просто слишком запуганы. Ну не все же готовы вместо простых селектов писать "циклы", динамические запросы ..... Зачем буржуа придумывал для нас МД с декларативными и ассоциативными языками БД? Чтобы бы мы изобретали как вместо этого циклы написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 11:50 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
vadiminfoНу не все же готовы вместо простых селектов писать "циклы", динамические запросы Ты это об чём? Какие "циклы" пишут, например, пользователи, кликающие на заголовок столбца в "Проводнике" для сортировки по нему? И чем провинились пользователи говноподелок, аффтары которых не хотят предоставить им такой же сервис? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 13:26 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Ты это об чём? Какие "циклы" пишут, например, пользователи, кликающие на заголовок столбца в "Проводнике" для сортировки по нему? И чем провинились пользователи говноподелок, аффтары которых не хотят предоставить им такой же сервис? Я в основом про тех пользователей, которые аффторы. Тех кто разрабатывает и сопровождает. Впрочем, селекты (а тм болеe QBE) для отчута могут налабать и конечные пользоватли. Тема же, скорее, про БД, а не про интерфейсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 13:43 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovvadiminfoНу не все же готовы вместо простых селектов писать "циклы", динамические запросы Ты это об чём? Какие "циклы" пишут, например, пользователи, кликающие на заголовок столбца в "Проводнике" для сортировки по нему? И чем провинились пользователи говноподелок, аффтары которых не хотят предоставить им такой же сервис? Придется тащить на клиента сразу все данные. Как минимум - те, по которым делать сортировку. Обработка "кликов" на сервере позволяет вытаскивать не весь результат сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 14:25 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
vvmПридется тащить на клиента сразу все данные. Как минимум - те, по которым делать сортировку. Обработка "кликов" на сервере позволяет вытаскивать не весь результат сразу. Хочешь мучить сервер - выбирай атрибут сортировки отдельным запросом, а с ним уже джоинь все остальные. В чём проблема-то?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 14:47 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим Н, То что Вы пишите следствие большого желания получить дивиденды из ничего, скромней нужно быть и больше работать, побольше читать серьезных книжек, а не такую муть как Вы привели на хабре. Вместо того, чтобы написать нормальный фреймворк экранирующий SQL Server выдумываются всякие недоинструменты. Это на самом деле типичная проблема, когда начинающие программисты хотят получить большой профит без трудозатрат на обучение, увы такого не будет... ни Вы первые ни Вы последние. Так что за букварь... сначала разберите классику, а потом уже за новомодные тенденции Раньше, порог вхождения в отрасль был значительно выше и таких глупостей было меньше ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 18:58 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
eny, Большое спасибо за советы, учту. Но ИМХО Вашу критику предложенного метода на хабре (кстати только одного из них, и от которого я в конце концов отказался уже) Вы ни чем не обосновали (был бы очень благодарен за это). И альтернативных вариантов предложено тоже не было (так же был бы весьма благодарен), кроме того как почитать "классику". авторВместо того, чтобы написать нормальный фреймворк экранирующий SQL Server А вот здесь можно поподробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 20:33 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovvvmПридется тащить на клиента сразу все данные. Как минимум - те, по которым делать сортировку. Обработка "кликов" на сервере позволяет вытаскивать не весь результат сразу. Хочешь мучить сервер - выбирай атрибут сортировки отдельным запросом, а с ним уже джоинь все остальные. В чём проблема-то?.. Как это - "выбирай и джойнь"? :) А как же твоя 12031140 схема "тянем все подряд, клиент разберётся"? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 23:06 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
vvmА как же твоя схема "тянем все подряд, клиент разберётся"? Она для разумных людей, разумно распределяющих нагрузку между сервером и клиентом. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2013, 23:55 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovvvmА как же твоя схема "тянем все подряд, клиент разберётся"? Она для разумных людей, разумно распределяющих нагрузку между сервером и клиентом. Где таких взять. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2013, 00:43 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
vvmГде таких взять. "Бабу Ягу со стороны брать не будем, вырастим в своём коллективе." (с) КН Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2013, 00:56 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим ННеобходима СУБД, удовлетворящая следующим требованиям (вкратце): Это не СУБД, а фраймворк. Попросите, м.б. кто-то и поделится. Если нет, то делайте сами. В основе ессно EAV. СУБД любая. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2013, 09:40 |
|
|
start [/forum/topic.php?fid=35&msg=38247995&tid=1552457]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 258ms |
total: | 398ms |
0 / 0 |