powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
25 сообщений из 454, страница 2 из 19
Как назвать эту структуру и подход, основанные на EAV?
    #39844316
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyMegabyteпропущено...

А тип поля для Value у вас какой выбран?

Концептуально – это байты данных, трактуемые в зависимости от их типа.
В существующих приложениях и сервисах – это текстовое поле, в котором также текстом хранятся числовые значения, в т.ч. datetime.

Т.е. вместо 1млн. чисел вы храните 1 миллион строк(небось еще и максимальной длины)..?
В угоду "универсальности" нормальный такой перерасход пространства.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844327
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteВ угоду "универсальности" нормальный такой перерасход пространства.Пространство - полбеды.
Основная беда - преобразование строки в число на лету при массовых вычислениях. Дичайше тормозит.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844343
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteВ угоду "универсальности" нормальный такой перерасход пространства.
СУБД - это универсальное решение. Хорошо отработанное универсальное решение. И вот, очередной квазиархитектор решает использовать это универсальное решение на 0.1% возможностей для того, чтобы создать четыре таблицы и громоздить над ними собственный велосипед. Нетрудно догадаться, что результат получается похожим на самолёт-истребитель, к которому туземец приспособил велосипедную цепь с седлом и пытается на этом плавать.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844347
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Megabytedrynnyпропущено...


Концептуально – это байты данных, трактуемые в зависимости от их типа.
В существующих приложениях и сервисах – это текстовое поле, в котором также текстом хранятся числовые значения, в т.ч. datetime.

Т.е. вместо 1млн. чисел вы храните 1 миллион строк(небось еще и максимальной длины)..?
В угоду "универсальности" нормальный такой перерасход пространства.

Я сравнивал, и благодаря нормализации получается почти столько же места база занимает ( здесь можно видеть ), как такая же в оракле, но здесь зато сразу всё проиндексировано.

А у вас есть какой-нибудь вариант названия для этого неоднозначного подхода?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844348
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerMegabyteВ угоду "универсальности" нормальный такой перерасход пространства.
СУБД - это универсальное решение. Хорошо отработанное универсальное решение. И вот, очередной квазиархитектор решает использовать это универсальное решение на 0.1% возможностей для того, чтобы создать четыре таблицы и громоздить над ними собственный велосипед. Нетрудно догадаться, что результат получается похожим на самолёт-истребитель, к которому туземец приспособил велосипедную цепь с седлом и пытается на этом плавать.
Смешновато ) в точку
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844349
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerMegabyteВ угоду "универсальности" нормальный такой перерасход пространства.
СУБД - это универсальное решение. Хорошо отработанное универсальное решение. И вот, очередной квазиархитектор решает использовать это универсальное решение на 0.1% возможностей для того, чтобы создать четыре таблицы и громоздить над ними собственный велосипед. Нетрудно догадаться, что результат получается похожим на самолёт-истребитель, к которому туземец приспособил велосипедную цепь с седлом и пытается на этом плавать.
Живописно как сочинили.

Ну, всякое бывает...
С названием поможете?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844356
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyДля навигации в этом списке построены 3 упорядоченных указателя – индексы: ID, Entity+Attribute, Attribute+Value
При такой организации данных мы можем работать с базой данных любого размера, не имея проблем с производительностью, свойственных системам, построенным на обычном EAV.

Какие ваши доказательства? ) Что значит любого размера?
На каком конкретно объеме данных тестировали? Какие запросы делали? какого типа атрибуты использовали?
Какие результаты получены?
То же самое,но без EAV что показывает?
Название наверное пока еще рановато придумывать...
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844402
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergueidrynnyДля навигации в этом списке построены 3 упорядоченных указателя – индексы: ID, Entity+Attribute, Attribute+Value
При такой организации данных мы можем работать с базой данных любого размера, не имея проблем с производительностью, свойственных системам, построенным на обычном EAV.

Какие ваши доказательства? ) Что значит любого размера?
Это значит, что размер напрямую не влияет на производительность. Конкретнее, в при таком подходе не будет full scan и прочих вещей, присущих EAV, потому что из-за использования индексов система работает с ограниченным набором данных – они находятся быстро.
При каждом удвоении объема данных в индекс добавляется максимум 1 уровень.

SergueiНа каком конкретно объеме данных тестировали?
До 200GB.
Обычно при использовании RAM 1GB в ней занято не больше 100MB.
Вот здесь можно посмотреть графики при работе до 25 пользователей одновременно: habr.com/ru/company/neoflex/blog/451218/#tests

SergueiКакие запросы делали? какого типа атрибуты использовали?
Какие результаты получены?
Атрибуты используются разных типов, включая числовые значения.
Сейчас используется несколько сервисов, построенных на этом решении, результаты в плане быстродействия вполне приличные, а обычное время построения страниц веб-интерфейса находится в пределах 33-150 мс.

SergueiТо же самое,но без EAV что показывает?
Сравнение с обычной базой приведено здесь: habr.com/ru/post/414255/

SergueiНазвание наверное пока еще рановато придумывать...
Если что, задавайте ещё вопросы, а я жду вашего ответа.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844655
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynny[
Пока в голову приходит только REAV – Relational EAV
Это структурная основа RDBMS, но с фиксированным форматом таблиц

Все EAV так как все они RDBMS и потому на структурное основе RDBMS.
Т.е. тогда любую EAV можно было бы назвать REAV.

Кроме того, традиционно термин Relational выглядит много обещающим для МД. Поскольку происходит от понятия Отношения в теории множеств - одной из важнейших теоретико-множественных конструкций. Используется в многих разделах математики.
В частности, в теории реляционных БД. Поэтому как бы от REAV ожидается что-то типа аксиом Амстронга или что-то подобное. Какая-то теория. Ведь это МД.

Поэтому REAV с одной стороны не позволяет отличить от других EAVов, с другой, слишком громкое.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844804
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vadiminfodrynny[
Пока в голову приходит только REAV – Relational EAV
Это структурная основа RDBMS, но с фиксированным форматом таблиц

Все EAV так как все они RDBMS и потому на структурное основе RDBMS.
Т.е. тогда любую EAV можно было бы назвать REAV.

Кроме того, традиционно термин Relational выглядит много обещающим для МД. Поскольку происходит от понятия Отношения в теории множеств - одной из важнейших теоретико-множественных конструкций. Используется в многих разделах математики.
В частности, в теории реляционных БД. Поэтому как бы от REAV ожидается что-то типа аксиом Амстронга или что-то подобное. Какая-то теория. Ведь это МД.

Поэтому REAV с одной стороны не позволяет отличить от других EAVов, с другой, слишком громкое.

Ок, спасибо. В целом согласен.

Как вариант, можно вообще не использовать аббревиатуру EAV, назвав это типа Quintet data model.
Общался с одним экспертом по БД, и он сразу начал применять термин «пятерки». Пять штук чего-либо называется квинтетом, а у меня все записи содержат 5 полей. Статью одноименную я запилил на хабре об этом.

Что скажете?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844909
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynny Статью одноименную я запилил на хабре об этом.

Что скажете?
14 декабря 2018 года... удивительно
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39844977
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий Мухdrynny Статью одноименную я запилил на хабре об этом.

Что скажете?
14 декабря 2018 года... удивительно

Ну а что тут?

Мне очень важно ваше мнение.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39845041
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyНу а что тут?

Мне очень важно ваше мнение.

было бы интересно увидеть реализацию какого то кейса с демонстрацией возможностей, а до того не интересно время тратить...
У меня в системе используется аналогичное решение, но не для хранения всего и вся, а частично. Простые структуры да удобно, а чуть посложнее - все приплыли...
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39845165
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyА у вас есть какой-нибудь вариант названия для этого неоднозначного подхода?Синяя изолента - быстро дешево и сердито

Да, в некоторых случаях может быть удобно и даже прочно
YouTube Video
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39845445
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynny но здесь зато сразу всё проиндексировано. Это в большинстве случаев не хорошо.
ЗЫ. Хочешь, подскажу более универсальную структуру? Это XML, хранящийся в clob в одном поле и всего одна строка в одной таблице! Можешь запатентовать!
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39845511
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oragraf Это в большинстве случаев не хорошо.
ЗЫ. Хочешь, подскажу более универсальную структуру? Это XML, хранящийся в clob в одном поле и всего одна строка в одной таблице! Можешь запатентовать!

Для этого даже термин есть - кладбище XMLей )
Теоретически во многих базах можно прямо из SQL делать запросы к XML который в блоб (clob в oracle), но на практике это получится очень медленно и на больших объемах загнется на селектах. Кроме того, не будет никакого контроля целостности данных. В этом случае вообще зачем писать в базу- можно сразу в xml на диск складировать.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846175
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoMegabyteВ угоду "универсальности" нормальный такой перерасход пространства.Пространство - полбеды.
Основная беда - преобразование строки в число на лету при массовых вычислениях. Дичайше тормозит.
еще вместе с датой надо хранить её формат. Т.е. чтобы 03/01/2019 распознать где месяц, где день.

Ради таких костылей начинаются EAV вида Attribute- Value text, Value int, Value datetime, Value decimal ....

Потом ради ускорения можно таблцу партицировать по Ентитям. Норм решение, рабочее.
Но это уже шаг к тому, что ентити надо разделить, чтобы не мешали друг-другу.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846709
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyНапример, мне приходят в головы такие варианты:
IEAV – Indexed EAV или ID–Entity–Attribute–Value (второе не отражает суть подхода, а только структуру)
CREAV – Cross-referenced EAV

Не удержался...

АУЕАВ
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846710
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафига этот ущербный EAV и все его кривые производные, отлитые из костылей?

Если есть Event Sourcing и проекции?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846735
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАУЕАВ

Класс !!!
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846807
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНафига этот ущербный EAV и все его кривые производные, отлитые из костылей?
Если есть Event Sourcing и проекции?Это куета и балабольство. Много слов, но по сути проблемы нет ничего.

Ценность EAV в том, что можно на лету добавить к сущности новое свойство или его новое значение и не затронуть никаких старых данных или структур. Легко систематизировать и трансформировать.

Модель не идеальная, но гибкая.
Новые данные создаются новыми строками в постоянных таблицах, а не новыми полями и таблицами.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846891
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo
Ценность EAV в том, что можно на лету добавить к сущности новое свойство или его новое значение и не затронуть никаких старых данных или структур. Легко систематизировать и трансформировать.
.
В текстовый документ тоже можно на лету что хочешь добавлять. Да и в тот же Йксель. Т.е. если целью является занять персонал набором данных, есть что-то и получше ЕАВа.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846896
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoЦенность EAV в том, что можно на лету добавить к сущности новое свойство или его новое значение и не затронуть никаких старых данных или структур.
И в чём ценность этого?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846903
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerL_argoЦенность EAV в том, что можно на лету добавить к сущности новое свойство или его новое значение и не затронуть никаких старых данных или структур.
И в чём ценность этого?
Ладно, чтобы не выслушивать тонны бреда, поясню вопрос. Допустим, есть таблица obj$somedata, в которой лежат те или иные важные бизнес-объекты. Поставлена задача добавлять к ним произвольные новые свойства и значения.

В тот момент, когда у Вас дёргается рука организовать eav, я делаю так. Завожу таблицу ext$somedata с единственным полем id. Там, где данные выводятся в интерфейс, я пишу запрос:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select 
  o.<required-fields>, 
  e.*
from 
  obj$somedata o, 
  ext$somedata e
where
  o.id = e.id (+)
  and <filter-conditions-for-this-data>


Ну и даю клиенту возможность описывать и создавать дополнительные поля в ext$somedata. Внимание, вопрос: опишите, что и сколько Вам потребуется сделать в eav, чтобы достичь того же результата. Не забудьте, например, про необходимость отфильтровать эту выборку по значению двух-трёх полей из "расширенного" набора.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846909
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerИ в чём ценность этого?

Позволяет призвать дух товарища Тенцера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 454, страница 2 из 19
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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