|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyMegabyteпропущено... А тип поля для Value у вас какой выбран? Концептуально – это байты данных, трактуемые в зависимости от их типа. В существующих приложениях и сервисах – это текстовое поле, в котором также текстом хранятся числовые значения, в т.ч. datetime. Т.е. вместо 1млн. чисел вы храните 1 миллион строк(небось еще и максимальной длины)..? В угоду "универсальности" нормальный такой перерасход пространства. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2019, 20:41 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
MegabyteВ угоду "универсальности" нормальный такой перерасход пространства.Пространство - полбеды. Основная беда - преобразование строки в число на лету при массовых вычислениях. Дичайше тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2019, 21:52 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
MegabyteВ угоду "универсальности" нормальный такой перерасход пространства. СУБД - это универсальное решение. Хорошо отработанное универсальное решение. И вот, очередной квазиархитектор решает использовать это универсальное решение на 0.1% возможностей для того, чтобы создать четыре таблицы и громоздить над ними собственный велосипед. Нетрудно догадаться, что результат получается похожим на самолёт-истребитель, к которому туземец приспособил велосипедную цепь с седлом и пытается на этом плавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2019, 22:59 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Megabytedrynnyпропущено... Концептуально – это байты данных, трактуемые в зависимости от их типа. В существующих приложениях и сервисах – это текстовое поле, в котором также текстом хранятся числовые значения, в т.ч. datetime. Т.е. вместо 1млн. чисел вы храните 1 миллион строк(небось еще и максимальной длины)..? В угоду "универсальности" нормальный такой перерасход пространства. Я сравнивал, и благодаря нормализации получается почти столько же места база занимает ( здесь можно видеть ), как такая же в оракле, но здесь зато сразу всё проиндексировано. А у вас есть какой-нибудь вариант названия для этого неоднозначного подхода? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2019, 23:21 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarerMegabyteВ угоду "универсальности" нормальный такой перерасход пространства. СУБД - это универсальное решение. Хорошо отработанное универсальное решение. И вот, очередной квазиархитектор решает использовать это универсальное решение на 0.1% возможностей для того, чтобы создать четыре таблицы и громоздить над ними собственный велосипед. Нетрудно догадаться, что результат получается похожим на самолёт-истребитель, к которому туземец приспособил велосипедную цепь с седлом и пытается на этом плавать. Смешновато ) в точку ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2019, 23:22 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarerMegabyteВ угоду "универсальности" нормальный такой перерасход пространства. СУБД - это универсальное решение. Хорошо отработанное универсальное решение. И вот, очередной квазиархитектор решает использовать это универсальное решение на 0.1% возможностей для того, чтобы создать четыре таблицы и громоздить над ними собственный велосипед. Нетрудно догадаться, что результат получается похожим на самолёт-истребитель, к которому туземец приспособил велосипедную цепь с седлом и пытается на этом плавать. Живописно как сочинили. Ну, всякое бывает... С названием поможете? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2019, 23:27 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyДля навигации в этом списке построены 3 упорядоченных указателя – индексы: ID, Entity+Attribute, Attribute+Value При такой организации данных мы можем работать с базой данных любого размера, не имея проблем с производительностью, свойственных системам, построенным на обычном EAV. Какие ваши доказательства? ) Что значит любого размера? На каком конкретно объеме данных тестировали? Какие запросы делали? какого типа атрибуты использовали? Какие результаты получены? То же самое,но без EAV что показывает? Название наверное пока еще рановато придумывать... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2019, 23:54 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
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Название наверное пока еще рановато придумывать... Если что, задавайте ещё вопросы, а я жду вашего ответа. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2019, 08:29 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny[ Пока в голову приходит только REAV – Relational EAV Это структурная основа RDBMS, но с фиксированным форматом таблиц Все EAV так как все они RDBMS и потому на структурное основе RDBMS. Т.е. тогда любую EAV можно было бы назвать REAV. Кроме того, традиционно термин Relational выглядит много обещающим для МД. Поскольку происходит от понятия Отношения в теории множеств - одной из важнейших теоретико-множественных конструкций. Используется в многих разделах математики. В частности, в теории реляционных БД. Поэтому как бы от REAV ожидается что-то типа аксиом Амстронга или что-то подобное. Какая-то теория. Ведь это МД. Поэтому REAV с одной стороны не позволяет отличить от других EAVов, с другой, слишком громкое. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2019, 15:00 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
vadiminfodrynny[ Пока в голову приходит только REAV – Relational EAV Это структурная основа RDBMS, но с фиксированным форматом таблиц Все EAV так как все они RDBMS и потому на структурное основе RDBMS. Т.е. тогда любую EAV можно было бы назвать REAV. Кроме того, традиционно термин Relational выглядит много обещающим для МД. Поскольку происходит от понятия Отношения в теории множеств - одной из важнейших теоретико-множественных конструкций. Используется в многих разделах математики. В частности, в теории реляционных БД. Поэтому как бы от REAV ожидается что-то типа аксиом Амстронга или что-то подобное. Какая-то теория. Ведь это МД. Поэтому REAV с одной стороны не позволяет отличить от других EAVов, с другой, слишком громкое. Ок, спасибо. В целом согласен. Как вариант, можно вообще не использовать аббревиатуру EAV, назвав это типа Quintet data model. Общался с одним экспертом по БД, и он сразу начал применять термин «пятерки». Пять штук чего-либо называется квинтетом, а у меня все записи содержат 5 полей. Статью одноименную я запилил на хабре об этом. Что скажете? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2019, 19:18 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny Статью одноименную я запилил на хабре об этом. Что скажете? 14 декабря 2018 года... удивительно ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2019, 11:27 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Дмитрий Мухdrynny Статью одноименную я запилил на хабре об этом. Что скажете? 14 декабря 2018 года... удивительно Ну а что тут? Мне очень важно ваше мнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2019, 20:16 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyНу а что тут? Мне очень важно ваше мнение. было бы интересно увидеть реализацию какого то кейса с демонстрацией возможностей, а до того не интересно время тратить... У меня в системе используется аналогичное решение, но не для хранения всего и вся, а частично. Простые структуры да удобно, а чуть посложнее - все приплыли... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2019, 10:25 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyА у вас есть какой-нибудь вариант названия для этого неоднозначного подхода?Синяя изолента - быстро дешево и сердито Да, в некоторых случаях может быть удобно и даже прочно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2019, 18:56 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny но здесь зато сразу всё проиндексировано. Это в большинстве случаев не хорошо. ЗЫ. Хочешь, подскажу более универсальную структуру? Это XML, хранящийся в clob в одном поле и всего одна строка в одной таблице! Можешь запатентовать! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2019, 15:52 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
oragraf Это в большинстве случаев не хорошо. ЗЫ. Хочешь, подскажу более универсальную структуру? Это XML, хранящийся в clob в одном поле и всего одна строка в одной таблице! Можешь запатентовать! Для этого даже термин есть - кладбище XMLей ) Теоретически во многих базах можно прямо из SQL делать запросы к XML который в блоб (clob в oracle), но на практике это получится очень медленно и на больших объемах загнется на селектах. Кроме того, не будет никакого контроля целостности данных. В этом случае вообще зачем писать в базу- можно сразу в xml на диск складировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2019, 17:39 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
L_argoMegabyteВ угоду "универсальности" нормальный такой перерасход пространства.Пространство - полбеды. Основная беда - преобразование строки в число на лету при массовых вычислениях. Дичайше тормозит. еще вместе с датой надо хранить её формат. Т.е. чтобы 03/01/2019 распознать где месяц, где день. Ради таких костылей начинаются EAV вида Attribute- Value text, Value int, Value datetime, Value decimal .... Потом ради ускорения можно таблцу партицировать по Ентитям. Норм решение, рабочее. Но это уже шаг к тому, что ентити надо разделить, чтобы не мешали друг-другу. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2019, 09:19 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyНапример, мне приходят в головы такие варианты: IEAV – Indexed EAV или ID–Entity–Attribute–Value (второе не отражает суть подхода, а только структуру) CREAV – Cross-referenced EAV Не удержался... АУЕАВ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 00:47 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Нафига этот ущербный EAV и все его кривые производные, отлитые из костылей? Если есть Event Sourcing и проекции? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 00:49 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttАУЕАВ Класс !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 07:28 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttНафига этот ущербный EAV и все его кривые производные, отлитые из костылей? Если есть Event Sourcing и проекции?Это куета и балабольство. Много слов, но по сути проблемы нет ничего. Ценность EAV в том, что можно на лету добавить к сущности новое свойство или его новое значение и не затронуть никаких старых данных или структур. Легко систематизировать и трансформировать. Модель не идеальная, но гибкая. Новые данные создаются новыми строками в постоянных таблицах, а не новыми полями и таблицами. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 10:29 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
L_argo Ценность EAV в том, что можно на лету добавить к сущности новое свойство или его новое значение и не затронуть никаких старых данных или структур. Легко систематизировать и трансформировать. . В текстовый документ тоже можно на лету что хочешь добавлять. Да и в тот же Йксель. Т.е. если целью является занять персонал набором данных, есть что-то и получше ЕАВа. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 12:01 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
L_argoЦенность EAV в том, что можно на лету добавить к сущности новое свойство или его новое значение и не затронуть никаких старых данных или структур. И в чём ценность этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 12:07 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
softwarerL_argoЦенность EAV в том, что можно на лету добавить к сущности новое свойство или его новое значение и не затронуть никаких старых данных или структур. И в чём ценность этого? Ладно, чтобы не выслушивать тонны бреда, поясню вопрос. Допустим, есть таблица obj$somedata, в которой лежат те или иные важные бизнес-объекты. Поставлена задача добавлять к ним произвольные новые свойства и значения. В тот момент, когда у Вас дёргается рука организовать eav, я делаю так. Завожу таблицу ext$somedata с единственным полем id. Там, где данные выводятся в интерфейс, я пишу запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Ну и даю клиенту возможность описывать и создавать дополнительные поля в ext$somedata. Внимание, вопрос: опишите, что и сколько Вам потребуется сделать в eav, чтобы достичь того же результата. Не забудьте, например, про необходимость отфильтровать эту выборку по значению двух-трёх полей из "расширенного" набора. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 12:17 |
|
|
Start [/forum/topic.php?fid=32&tid=1539762&startmsg=first&offset=2]: |
0ms |
get settings: |
2ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
13ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
49ms |
get tp. blocked users: |
0ms |
others: | 73ms |
total: | 153ms |
0 / 0 |