|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НPSV100пропущено... Лично я к этому проекту не имею никакого отношения. Вот чего желает ТС: пропущено... Именно всё это и имеется в этом проекте, в т.ч. как раз поверх Neo4j. Причём это не только некая альтернатива решениям на основе реляционных баз (включая и для EAV), но и, в целом, другой взгляд на разработку информационных систем (отчасти Акссессо-подобный). Я не в курсе, насколько продукт пригоден для использования (думаю, что не очень), но проект интересен, прежде всего, концептуально. Особенно привлекательны способы обработки данных, что можно взять себе на вооружение, причём не только в рамках какой-то NoSQL. Весьма рекомендую ознакомиться. Спасибо, именно эти статьи и привели меня к мысле попробовать заюзать графовую базу для таких дел. К сам ому Animotron'у я еще не готов, а вот Neo4j, почему бы и нет. Зафигачить EAV и радоваться жизни это не проблема, только вот как то надоело, интересно решить данную задачу подругому, с использованием более подходящих для этого инструментов (или выяснить для себя, что это не так), поэкспериментировать (тем более текущий проект позволяет пока). Если кому будет интересно могу отписаться о своей попытке, когда будут результаты. Ну, если нет обязательной привязки к SQL-DB и проект позволяет поэкспериментировать, то вполне есть смысл что-то пощупать. Рекомендую ещё глянуть на TinkerPop - проект вокруг графовых данных, там есть и свой DSL-язык, и аналог JDBC для графданных, и какой-то сервер и пр. Я с ним не разбирался, что-то подробнее не скажу. Насколько я понимаю, проект известен в соответствующих кругах, поэтому есть смысл что-то ещё поискать вокруг этого проекта. Там есть биндинги и для Neo4j, и для OrientDB (но с ней осторожней, раньше глючила и ломала базы, не в курсе как сейчас). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2013, 20:58 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим Н, да все уже сто лет как пережёвано http://www.compress.ru/article.aspx?id=11515 Максим Нвкратце: хранить экземпляры сущностей в одной таблице в формате xml, и делать к ним sql-запросы с использованием xpath а вот это - адский ад. С тем же успехом все можно хранить в одном blob одной записи (жёсткая шутка). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2013, 21:02 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
удивительно, как люди постоянно (и с завидным упорством) умудряются изобретать велосипед. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2013, 21:03 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
kdvМаксим Н, да все уже сто лет как пережёвано http://www.compress.ru/article.aspx?id=11515 ... В той статье показано, как можно сделать, и какая получится фигня, если сделать именно так. Вопрос - как надо? Чтобы фигня не получилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2013, 22:06 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
kdvМаксим Н, да все уже сто лет как пережёвано http://www.compress.ru/article.aspx?id=11515 Максим Нвкратце: хранить экземпляры сущностей в одной таблице в формате xml, и делать к ним sql-запросы с использованием xpath а вот это - адский ад. С тем же успехом все можно хранить в одном blob одной записи (жёсткая шутка). Дык это статье 12 лет .... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2013, 10:30 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НДык это статье 12 лет .... ну и что изменилось за 12 лет? я сам делал "хранилище объектов" еще в 1993 году, на таблицах Paradox. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2013, 13:56 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
kdvМаксим НДык это статье 12 лет .... ну и что изменилось за 12 лет? я сам делал "хранилище объектов" еще в 1993 году, на таблицах Paradox. Прогресс не стоит на месте, расцветают kv-базы, документоориентированные, графовые и др. (не мне вам рассказывать). Вот я и подумал, что наверняка есть какой-либо другой способ решения данной проблемы. Про плюсы и минусы EAV все прекрасно знают. А вот про минусы использования графовых баз (или других решений), что из этого вообще может получится, я пока информации найти не могу. Видимо придется пробовать самому. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2013, 17:10 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НПрогресс не стоит на месте, расцветают kv-базы, документоориентированные, графовые и др. (не мне вам рассказывать). Одно дело расцветать, другое расцвести. Максим Н А вот про минусы использования графовых баз (или других решений), .... Это не сетевые часом? Оные, мягко говоря, относятся к прогрессу более раннему чем 12 лет. Это вообще дореляционная эпоха. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2013, 20:53 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
vadiminfoМаксим Н А вот про минусы использования графовых баз (или других решений), .... Это не сетевые часом? Оные, мягко говоря, относятся к прогрессу более раннему чем 12 лет. Это вообще дореляционная эпоха. Да, точнее их разновидность. Не в возрасте дело, а в том что помимо реляционки есть другие замечательные МД, вот и интересуюсь как с помощью них можно (и можно ли вообще) более естественно решить поднятую здесь задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2013, 22:16 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НПрогресс не стоит на месте, расцветают kv-базы, документоориентированные, графовые и др. (не мне вам рассказывать). Вот я и подумал, что наверняка есть какой-либо другой способ решения данной проблемы. Про плюсы и минусы EAV все прекрасно знают все так, но вот мне кажется, что пустое обсуждение этого вопроса на трех страницах, плюс, наличие в википедии означенной темы только на одном языке, явно намекает на степень популярности этой темы. http://en.wikipedia.org/wiki/Entity–attribute–value_model Если же вернуться к вашему исходному вопросу " пользователь с помощью графического интерфейса добавляет информацию о любых предметах (сущностях) ... а затем может работать с этими сущностями " то по моему опыту, редко какому пользователю это надо. Под "редко" я имею в виду, к примеру, одного из тысячи. В реальности пользователь не хочет самостоятельно определять объекты и их атрибуты, а даже если и хочет, то как правило, не способен это сделать [правильно]. Так что, даже если есть такие системы, то объекты в них создает специально обученный человек. В итоге пользователь работает уже всегда с готовыми объектами. А в результате совершенно по барабану, какая модель данных при этом "на дне". p.s. если я правильно помню, системы типа EAV показывают производительность, обратно пропорциональную количеству объектов и их экземпляров в системе. По идее, 1С 8 как раз по такой схеме сделана. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 01:29 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
да, еще добавлю, что в последнее время я вижу разве что в отдельных CRM возможность создания дополнительных атрибутов к уже имеющимся сущностям. И то с этим есть определенные проблемы (у пользователей, опять же). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 01:32 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
kdvМаксим НПрогресс не стоит на месте, расцветают kv-базы, документоориентированные, графовые и др. (не мне вам рассказывать). Вот я и подумал, что наверняка есть какой-либо другой способ решения данной проблемы. Про плюсы и минусы EAV все прекрасно знают все так, но вот мне кажется, что пустое обсуждение этого вопроса на трех страницах, плюс, наличие в википедии означенной темы только на одном языке, явно намекает на степень популярности этой темы. http://en.wikipedia.org/wiki/Entity–attribute–value_model Рискну предположить, что ее популярность обусловлена привязанностью к реляционкам и отсутствием другого распрастраненного, доступного и обкатанного решения. kdvЕсли же вернуться к вашему исходному вопросу " пользователь с помощью графического интерфейса добавляет информацию о любых предметах (сущностях) ... а затем может работать с этими сущностями " то по моему опыту, редко какому пользователю это надо. Под "редко" я имею в виду, к примеру, одного из тысячи. В реальности пользователь не хочет самостоятельно определять объекты и их атрибуты, а даже если и хочет, то как правило, не способен это сделать [правильно]. Так что, даже если есть такие системы, то объекты в них создает специально обученный человек. В итоге пользователь работает уже всегда с готовыми объектами. А в результате совершенно по барабану, какая модель данных при этом "на дне". Может глупость скажу, но все же: а как же тот самый Эксель, где пользователь сам описывает и заполняет таблчики, делает выборки над ними, имитирует связи между ними, расчеты и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 09:46 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
kdvда, еще добавлю, что в последнее время я вижу разве что в отдельных CRM возможность создания дополнительных атрибутов к уже имеющимся сущностям. И то с этим есть определенные проблемы (у пользователей, опять же). Особенно в магазинах и всяких каталогах это популярная тема. Как в Magento например, которые слезают с EAV - http://dimitrigatowski.com/2011/06/19/magento-2-preview/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 09:50 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим Н, ну когда же ты уже начнешь кодить? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 11:28 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НМожет глупость скажу, но все же: а как же тот самый Эксель, где пользователь сам описывает и заполняет таблчики, делает выборки над ними, имитирует связи между ними, расчеты и т.д. Даже excel имеет слишком высокую для большинства пользователей сложность. Далеко не все осваивают создание формул, а уж про аналитику и говорить не стоит. Если же к нему навернуть еще и некое "описание модели данных", то это станет инструментом для совсем немногих (тот самый один из тысячи, о котором писал kdv). Но хитрость как раз в том, что для этих "избранных" уже существуют гораздо более удобные и функциональные инструменты. В общем, прежде чем создавать новый конструктор надо четко понять целевую аудиторию. Если это будут программисты, то подходы используются одни, для менеджеров - совсем другие, а для бухгалтеров - третьи. А если использовать программистские подходы в инструменте для бухгалтера, то ни программист, ни бухгалтер нормально им пользоваться не сможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 14:14 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
Максим НДа, точнее их разновидность. Не в возрасте дело, а в том что помимо реляционки есть другие замечательные МД, вот и интересуюсь как с помощью них можно (и можно ли вообще) более естественно решить поднятую здесь задачу. Сетевые - это дореляционная эпоха в технологиях БД. Т.е. может быть и "естественное", но дореляционное решение задачи у Вас получится. Пысы Впрочем, и на лошади может быть более естественно ездить чем на авто. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 22:32 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
автор.s. если я правильно помню, системы типа EAV показывают производительность, обратно пропорциональную количеству объектов и их экземпляров в системе. точно нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 06:47 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
ScareCrowавтор.s. если я правильно помню, системы типа EAV показывают производительность, обратно пропорциональную количеству объектов и их экземпляров в системе. точно нет. Зависит от того, что нужно получить и "как оно делается". Время выполнения обычного select к табличке без индексов тоже будет тем дольше, чем больше записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 11:33 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
авторЗависит от того, что нужно получить и "как оно делается". ну это к EAV отношения уже не имеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 13:26 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
ScareCrowточно нет. точно да, по двум причинам: 1. если в обычной схеме таблица=объект атрибуты (столбцы) расположены горизонтально, и всегда есть доступ ко всем "атрибутам", то в объектной схеме атрибуты расположены вертикально. Понятно, что по затратам дискового места объектная схема не сильно больше табличной, но тут вступает в действие пункт 2: 2. запросы для вытаскивания объектов, атрибутов и их значений обычно сложнее, чем запросы к "горизонтальным атрибутам". А в результате, даже при наличии индексов, стоимость выборки одних и тех же данных может сильно отличаться как по процессорным, так и дисковым ресурсам. например, еще до построения объектной схемы на РСУБД я строил такую на ДИАМС (Mumps, или глобали Cache, если угодно). Скорость поиска и выборки данных объектов была высокой за счет дублирования данных (избыточности) и самой иерархической схемы. То же самое на реляционке построить можно, но с теми же затратами, но уже без преимуществ иерархической системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 14:37 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
автор2. запросы для вытаскивания объектов, атрибутов и их значений обычно сложнее, чем запросы к "горизонтальным атрибутам". А в результате, даже при наличии индексов, стоимость выборки одних и тех же данных может сильно отличаться как по процессорным, так и дисковым ресурсам. эм. признавайся, что ты сделал с настоящим kdv! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 17:00 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
запросов там ровно полтора. select * from meta_value where object_id = ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 17:01 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
причем что самое смешное: 1) из за маленького размера строки самой meta_value, по диску и памяти мы еще и выигрываем. 2) очень просто делаются запросы по набору атрибутов ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 17:04 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
ScareCrow, что это вы, тётенька, такое рассказываете? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 17:13 |
|
Хранение данных с гибкой структурой и запросы к ним
|
|||
---|---|---|---|
#18+
ScareCrowпричем что самое смешное: 1) из за маленького размера строки самой meta_value, по диску и памяти мы еще и выигрываем. 2) очень просто делаются запросы по набору атрибутова по двум атрибутам? т.е. допустим если мне надо искать нечто допустим по дате и номеру, то когда они в одной таблице я делаю индекс из двух полей, а с ЕАV как? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2013, 17:50 |
|
|
start [/forum/topic.php?fid=35&msg=38274952&tid=1552457]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 142ms |
0 / 0 |