powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
25 сообщений из 454, страница 13 из 19
Как назвать эту структуру и подход, основанные на EAV?
    #39858224
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerSiemarglЕсли все параметры в одну таблицу, как тут 21944555 , то да, если для каждой категории - отдельную, то нет
Не уверен, что Вы в данном случае называете категорией. "Как тут" делается следующее: на каждую "основную" таблицу - дополнительная кастомная (расширяемая), привязанная один к одному.1. Основная таблица - товар, дополнительная - атрибуты товара
не ОК
2.Основная таблица - товар (поле категория товара), дополнительные - разные таблицы атрибутов по категориям: стиральных машинок, атрибуты холодильников
ОК
3.Основные таблицы - отдельно стир.машинки, холодильники, утюги. Дополнительная 1 на каждую категорию.
ОК
softwarer
SiemarglСкажем так, тут я прав не всегда - зависит от СУБД, позволяет ли она DDL (add column) на используемой таблице.
Не только. Таблица ведь малоиспользуемая и не критичная для бизнес-логики, поэтому можно поискать варианты для конкретных СУБД. В принципе вплоть до такого изврата как создание под каждое поле отдельной таблицы - это уж точно пройдёт онлайн. Не очень понял. Пример, что в магазин завезли вибраторы, и нужны новая категория и набор атрибутовsoftwarer
SiemarglОк, какой? Дописываем
Неформатированное поле в таблице. XML итп.Ну это для практики поиска по атрибутам нерабочий вариант. Да и НФ0, для блокнотика
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858228
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglОсновная таблица - товар, дополнительная - атрибуты товара
не ОК
Скажем так, утверждение о том, что при прочих равных некий набор информации "начнёт загибаться" в таком формате и "не начнёт загибаться" в EAV для меня выглядит... сомнительным.

SiemarglНе очень понял. Пример, что в магазин завезли вибраторы, и нужны новая категория и набор атрибутов
Попробую сформулировать. Я не то чтобы серьёзно отношусь к требованию непрерывного онлайна, по моему опыту, для тех задач, для которых требуются кастомные атрибуты, оно нехарактерно. Тем не менее, я уверен, что если мне выставят подобные требования - я как минимум для Oracle смогу предложить тот или иной приемлемый вариант на основе этого подхода. Думаю, это справедливо не только для Oracle.

SiemarglНу это для практики поиска по атрибутам нерабочий вариант.
Отнюдь. Зависит от возможностей индексации конкретной СУБД. Наверное, какие-то этого не умеют - но я не стал бы из-за этого называть вариант нерабочим. Тем более что он обладает ценимой Вами максимальной онлайновостью.

SiemarglДа и НФ0, для блокнотика
Не совсем так. Понятие нормальных форм опирается на понятие атомарности хранимого значения. Само понятие атомарности, если над ним задуматься, специфицировано весьма размыто. Ну например поле даты - оно ведь состоит из дня, месяца, года. Или строковое поле, которое состоит из кучи символов. Какие же это атомарные значения и что такое вообще атомарность?

Если подумать над этим, становится очевидным следующее: значение является атомарным тогда и только тогда, когда оно "целым" участвует в операциях бизнес-логики (как минимум в явном большинстве таких операций). Вот у нас есть строковое поле. Если мы делаем с ним такие операции как "прочитать" (целиком), "записать" (целиком), "сконкатенировать с другими" (целиком) - это атомарные значения. Если же мы только и делаем, что "берём первый символ", "берём со второго по пятый символы" и т. п. - значение неатомарно и, соответственно, дизайн нарушает требования 1НФ.

Почему я говорю про большинство операций - потому что даже с "вроде бы атомарными" значениями иногда надо выделять части. Скажем, иногда мне нужно взять из лога записи, о том, что случалось с третьего по пятое сентября с девяти до десяти утра - но это не повод объявлять, что datetime поле нарушает 1НФ. Или - ИНН вроде бы вполне себе атомарное значение, мало кто будет хранить его по частям, но его первые цифры дают номер налоговой инспекции, да и контрольный разряд надо вычислять.

И это приводит к разумному и практичному выводу: на самом деле "атомарный" - неудачный термин для этого случая (как он в итоге оказался неудачным и для атома, который, как выяснилось, очень даже делим). Понятие атомарности используется по историческим причинам, но то, что в самом деле следовало бы поставить на его место, имеет смысл наподобие "удобно в использовании". Если нам приходится всё время строковыми операциями выщемлять значения из списка через запятую - это неудобно, нарушение 1НФ. Если для выделения, например, месяца из даты есть удобный синтаксис extract - нет проблем, поле даты не нарушает 1НФ даже если кое-где такое выделение происходит. И здесь стоит вспомнить, что понятие атомарности вводилось в те времена, когда в БД не было не то что хранимых процедур, а вообще каких-либо функций.

Ну так вот, смысл всей этой портянки в том, что подобное поле "коллекция дополнительных атрибутов" - значение, с которым вполне удобно работать. Главные операции с ним - выдать в интерфейс, получить из интерфейса, отфильтровать по значению какого-либо атрибута - выполняются вполне легко и эффективно. Так что не проблема.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858639
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerL_argoЗависит от реализации EAV. В правильной реализации все параметры - строго по назначению.
Это никак не мешает "огромному удовольствию" строить отчёты над EAV-данными. Ну просто для примера, допустим, есть следующие данные (в реляционном виде):

Номер партииДата поставкиКоличество кирпичейЦена за штуку101.09.2019100015202.09.2019200012.5302.09.2019100012403.09.2019300014
Задача - вывести общее количество и средневзвешенную цену кирпича для всех закупок между 02 и 03 сентября. Как эти данные лежат в EAV - наверное, все примерно понимают, но если важно для ответа - покажите как правильно. Приведёте запрос, решающий эту задачу?

Квинтетная модель была задумана не для написания запросов непосредственно к ней. Этим занимается обвязка, и в моем случае это ядро, которое отображает базовый интерфейс пользователя: редактор структуры данных, навигатор по данным, конструктор запросов и шаблонизатор.

В редакторе типов я набросал структуру (метаданные):



Вот так эти метаданные лежат в EAV:

iduptypordval1110ROOT3300SHORT9900DATE111100BOOLEAN131300NUMBER141400SIGNED161600REPORT_COLUMN2711301Номер партии272900Дата поставки2731300Количество кирпичей2741400Цена за штуку275272271127627327122772742713
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858641
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вбил данные в навигаторе, где отображается таблица согласно только что созданной структуре:



А вот так эти данные лежат в EAV:

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

Эта штука называется построитель запросов . Так она выглядит в базовом интерфейсе, но также у неё есть более дружественные пользователю воплощения.

Запрос total считает общую сумму за диапазон дат, а запрос Кирпичи взвешивает суммы и считает среднюю.
Запрос total я использую как вложенный в запросе Кирпичи.

...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858645
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь я запускаю отчет Кирпичи и вижу результат. Я задал диапазон дат (FR_date=2&TO_date=3), который используется обоими запросами.




Обратите внимание, что я не лезу в EAV, не задумываюсь как строить запрос: я просто перечислил нужные колонки и добавил функции, фильтры и формулы.

Девиз IdeaV: «Не сложнее Excel!»
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858646
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот теперь таки влезем в журнал базы и посмотрим, какой запрос сгенерировало ядро.
Вот он:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT SUM(a276.val) 'К-во',AVG(a277.val*a276.val
                   /(SELECT SUM(a314_276.val) v314_2_271 
                             FROM alex a314_271 
                             LEFT JOIN alex a314_275 ON a314_275.up=a314_271.id AND a314_275.t=275 
                             LEFT JOIN alex a314_276 ON a314_276.up=a314_271.id AND a314_276.t=276 
                             WHERE a314_271.up!=0 AND length(a314_271.val)!=0 AND a314_271.t=271 AND a314_275.val>='20190902' AND a314_275.val<='20190903' )) 'Ср.вз.цена' 
FROM alex a271 
LEFT JOIN alex a275 ON a275.up=a271.id AND a275.t=275 
LEFT JOIN alex a276 ON a276.up=a271.id AND a276.t=276 
LEFT JOIN alex a277 ON a277.up=a271.id AND a277.t=277 
WHERE a271.up!=0 AND length(a271.val)!=0 AND a271.t=271 AND a275.val>='20190902' AND a275.val<='20190903'
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858648
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то с формулой я накосячил второпях, но не в этом суть
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858652
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyЭта штука называется построитель запросов . Так она выглядит в базовом интерфейсе, но также у неё есть более дружественные пользователю воплощения.
Я ожидал такого ответа. В общем, неважно, как она выглядит - важно то, что её необходимо использовать и у неё нет альтернативы. Напомню, речь в этом фрагменте шла про "удовольствие построения отчётов". Так вот, получается, что при этом подходе практически недоступно подавляющее большинство инструментов построения отчётов, существующих в мире. Годится только один - тот, который написали Вы. И либо Вы заявите, что он самый лучший, умеет абсолютно всё и для любой задачи годится лучше, чем другие существующие построители - либо мой тезис про то, что такой подход делает построение отчётов хуже и неудобнее, доказан.

drynnyОбратите внимание, что я не лезу в EAV, не задумываюсь как строить запрос: я просто перечислил нужные колонки и добавил функции, фильтры и формулы.
Это важно для чайников. Более-менее приличный профессионал пишет запрос руками куда быстрее, чем он нащёлкивается в подобном построителе, ну и кроме того я на 99.9% уверен, что если взять, допустим, отчёты из того проекта, над которым я сейчас работаю, окажется, что Ваш построитель не в состоянии реализовать ни один из них - просто интерфейс не позволит сформулировать соответствующий запрос.

drynnyЧто-то с формулой я накосячил второпях, но не в этом суть
Суть, конечно, не в этом, но деталь показательная. Думаю, если Вы попытаетесь написать этот запрос руками на SQL над обычной реляционной таблицей - не ошибётесь даже с первого раза. Довольно наглядное сравнение сложности.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858658
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerЯ ожидал такого ответа. В общем, неважно, как она выглядит - важно то, что её необходимо использовать и у неё нет альтернативы. Напомню, речь в этом фрагменте шла про "удовольствие построения отчётов". Так вот, получается, что при этом подходе практически недоступно подавляющее большинство инструментов построения отчётов, существующих в мире. Годится только один - тот, который написали Вы. И либо Вы заявите, что он самый лучший, умеет абсолютно всё и для любой задачи годится лучше, чем другие существующие построители - либо мой тезис про то, что такой подход делает построение отчётов хуже и неудобнее, доказан.

Да, рискну заявить, что сам подход достаточно прост для постижения, поэтому написать свой построитель будет заметно легче, чем любой из существующих построителей.

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

В большинстве случаев вообще достаточно обертки к существующему, которая делается за полдня, как здесь или здесь .
Печально. Похоже, Вы искренне не понимаете, о чём вообще речь.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858661
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerdrynnyОбратите внимание, что я не лезу в EAV, не задумываюсь как строить запрос: я просто перечислил нужные колонки и добавил функции, фильтры и формулы.
Это важно для чайников. Более-менее приличный профессионал пишет запрос руками куда быстрее, чем он нащёлкивается в подобном построителе, ну и кроме того я на 99.9% уверен, что если взять, допустим, отчёты из того проекта, над которым я сейчас работаю, окажется, что Ваш построитель не в состоянии реализовать ни один из них - просто интерфейс не позволит сформулировать соответствующий запрос.
На текущем этапе это, в основном, инструмент именно для чайников и тех, кто пользуется MS Excel.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858748
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЭто важно для чайников. Более-менее приличный профессионал пишет запрос руками куда быстрее, чем он нащёлкивается в подобном построителе, ну и кроме того я на 99.9% уверен, что если взять, допустим, отчёты из того проекта, над которым я сейчас работаю, окажется, что Ваш построитель не в состоянии реализовать ни один из них - просто интерфейс не позволит сформулировать соответствующий запрос.

Дело вообще не в том для чайников или не для чайников. Нормальных, из реального мира, запросов на _этом_ написать вообще не представляется возможным. Для любого среднего анализа это ад, для серьёзного это совершенно нельзя использовать.

Даже в MS Access можно решать сложные задачи, а в таком решении ничего дальше примитивнейшего одноклеточного хранения данных придумать невозможно. Ну там, каталог книг какой-нибудь, или что-то такое. Не более того.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858750
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerdrynnyДа, рискну заявить, что сам подход достаточно прост для постижения, поэтому написать свой построитель будет заметно легче, чем любой из существующих построителей.

В большинстве случаев вообще достаточно обертки к существующему, которая делается за полдня, как здесь или здесь .
Печально. Похоже, Вы искренне не понимаете, о чём вообще речь.

А невозможно понять без реального опыта в реальном мире. Очень похоже, что автор не сталкивался с задачами реального мира, придумал себе примитивные задачи, их и решает.

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

Тех кто пользуется эксель, этот эксель устраивает более чем.
Более того, предлагая мощнйшие системы с построителями запросов, сложной и умной фильтрацией, сортировкой, группировкой, и т.д. и т.п., оказывается, что бизнес зачастую быстрее решает свои задачи выгрузкой в эксель и оперированием данными в нём. И предпочитает именно такой подход.

Там где не справляется эксель в ход идут отчётные системы, SQL запросы, представления.

И здесь _идеал_ даже не в районе плинтуса, а где-то в миллиметровом зазоре между полом и плинтусом.

Чистое самоубийство использовать подобные системы в бизнесе. Любой более менее вменяемый специалист подобную систему не то, что не будет рассматривать и рекомендовать бизнесу, он будет категорически против с позицией "вы чё там, головой ударились или грибов объелись?".
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858755
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyпоэтому написать свой построитель будет заметно легче, чем любой из существующих построителей.

И вот это абсолютная неправда, ложь, которую вы себе придумали.
Нет не будет легче ни в чём и ничем. Не тешьте себя идиотскими иллюзиями.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858780
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttsoftwarerЭто важно для чайников. Более-менее приличный профессионал пишет запрос руками куда быстрее, чем он нащёлкивается в подобном построителе, ну и кроме того я на 99.9% уверен, что если взять, допустим, отчёты из того проекта, над которым я сейчас работаю, окажется, что Ваш построитель не в состоянии реализовать ни один из них - просто интерфейс не позволит сформулировать соответствующий запрос.

Дело вообще не в том для чайников или не для чайников. Нормальных, из реального мира, запросов на _этом_ написать вообще не представляется возможным. Для любого среднего анализа это ад, для серьёзного это совершенно нельзя использовать.

Даже в MS Access можно решать сложные задачи, а в таком решении ничего дальше примитивнейшего одноклеточного хранения данных придумать невозможно. Ну там, каталог книг какой-нибудь, или что-то такое. Не более того.
Выше я показывал ролик про рекрутинговую систему 21945654 . Она одноклеточна?

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

Ну и? Никаких преимуществ мета-моделирования в этом нет, весь интерфейс и логика построены по конкретной модели данных.

Никаких преимуществ в хранении данных EAV тут также нет, классическое моделирование здесь подойдёт лучше и быстрее, так как логика будет работать со статичными, известным моделями, можно тестировать, покрывать тестами, планировать нагрузку, масштабировать.

Ну и опять-таки. На старте всё хорошо обычно, смотрите кнопки нажимаются, данные сохраняются, какой-то воркфлоу, -- ну просто вау! Серьёзно? Мы такие пилоты писали за неделю, на чём попало, и это работало. При чём вплоть до того, что заказчик смотрел и говорил, ну а чё, всё же работает, может того? Запустим? Конечно нет, не запустим, это всё хорошо только на демо.

А когда дойдёт до дела, там тысячи ньюансов, когда дойдёт до сложных отчётов, аналитики, за эти костыли хвинтеты можно получить много нелестных эпитетов.

drynnyПочти всем стартапам и малому бизнесу в принципе этого достаточно. А вот в экселе так не сделаешь, потому что сложно с правами, запросами, формами и прочим.

Ну т.е. вы позиционируете своё детище, как средство для временных пилотов? ХЗ какое в этом преимущество, и на классике решается всё не менее быстро.

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

Отнеситесь к критике конструктивно. Нет ни у меня, ни у других задачи -- кого-то или что-то об___ть, зачем?

Про очень серьёзные минусы, жирные, важные, критические вам уже сказали.
Каких-то серьёзных плюсов я не увидел, ну прям вообще. EAV он и в Африке EAV, как был довольно убогим костылём, так им и останется, что вы с ним не делайте.

Учитывая, что я сам много занимался подобным ранее, сам делал и в команде, и даже запускали в продакшен, "смотрите! работает!" -- это вообще не показатель. Из говна и палок можно сделать что-то что работает и даже выглядит сложно. Но это пыль в глаза.

На минусы вы просто не реагируете, а аргументы ваши не показательны.

Хотя то, что вы хоть что-то показываете и кто-то это даже какт-то использует, оно заслуживает уважения бесспорно.

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

hVosttПро очень серьёзные минусы, жирные, важные, критические вам уже сказали.
Из внятно озвученных минусов есть два:
1) типы данных в поле Value — разные, поэтому СУБД не может обойтись без преобразования
2) сложно написать запрос к EAV, потому что нужно много join и вообще сначала придется собрать метаданные

Первый минус касается только прототипа системы, сделанного в РСУБД и показанного тут вам. Сама же квинтетная модель свободна от подобного недостатка, потому что данные, как и в обычной СУБД, хранятся байтами для любых типов. Следовательно, движок QDM будет считывать эти байты и трактовать их нужным образом, имея возможность делать операции, применять индексы и всё прочее. То есть, это не минус QDM, а минус прототипа.

По второму пункту, как я уже показал выше, проблема решается ядром системы: оно может преобразовать любой запрос, будь то DDL или DML в запрос к квинтетной модели. Если вы присмотритесь к запросу 21965738 и напишете обычный SQL, то вы убедитесь, что их можно легко транслировать один в другой.
Вот тут 21965765 человек печалится, что я не понимаю засады, что людям невозможно использовать Discoverer для обращения к QDM. В то же время я могу выставить QDM во внешний мир так, как будто это, например, Postgre или MySQL какой-нибудь.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39858917
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynny... модель свободна от подобного недостатка, потому что данные, как и в обычной СУБД, хранятся байтами для любых типов...Повешу на стену, как образец тупоумия.

Внезапно, все данные в сегодняшних! компьютерах хранятся байтами. Разница только в способах их обработки.

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

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

drynnyИз внятно озвученных минусов есть два:

Нет их больше, но и этих хватает.
А вы их не решили, вы просто пытаетесь нам впарить, что есть суп циркулем, и забивать гвозди пассатижами, это нормально и даже здорово. Это мы дураки и не лечимся, а не вы.

Видимо вы считаете тут всех за идиотов, либо сами реально не понимаете проблем, которые создаёте, а не решаете.

drynnyСама же квинтетная модель свободна от подобного недостатка, потому что данные, как и в обычной СУБД, хранятся байтами для любых типов. Следовательно, движок QDM будет считывать эти байты и трактовать их нужным образом, имея возможность делать операции, применять индексы и всё прочее.

Нет никакой "квинтетной модели", не существует. Трактование байтов клиентом БД, а не самой БД -- это вообще зачем? Для чего? Десятки лет люди бились над совершенствованием СУБД, оптимизацией типизированного хранения для гарантий целостности, молниеносного доступа, быстрого и удобного оперирования данных с помощью простого единого языка запросов, который понимают все разработчики.

Но вы решили просто нивелировать всё это в угоду противному, неудобному оперированию с данными, никому неизвестным образом. И любой, кто в этом решит разобраться, у него волосы на голове зашевелятся, от глубины глупости решения.


drynnyПо второму пункту, как я уже показал выше, проблема решается ядром системы: оно может преобразовать любой запрос, будь то DDL или DML в запрос к квинтетной модели. Если вы присмотритесь к запросу 21965738 и напишете обычный SQL, то вы убедитесь, что их можно легко транслировать один в другой.

Запрос, который для нормальной схемы пишется в одну строку у вас это превращается в кромешный п....ц из джойнов. А будь что по-сложней, чем посчитать сумму по отфильтрованному набору, там вообще будет жопа. Планы запросов там будут с десятиэтажными матами.

И не надо чесать нам про "любой DML запрос".


drynnyВот тут 21965765 человек печалится, что я не понимаю засады, что людям невозможно использовать Discoverer для обращения к QDM. В то же время я могу выставить QDM во внешний мир так, как будто это, например, Postgre или MySQL какой-нибудь.

Это и называется костыли. Нафига они упали вообще не ясно.

Хотите сделать динамическое моделирование? Хранить мета-модель? Та ради бога. Но если вы не можете обеспечить в результате нормальную схему в БД, оно не нужно никому и за даром.

EAV это решение для очень узкоспециализированного спектра задач. Вы же его расширили до всех задач. А такое не может быть не наказуемо.

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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT SUM(a276.val) 'К-во',AVG(a277.val*a276.val
                   /(SELECT SUM(a314_276.val) v314_2_271 
                             FROM alex a314_271 
                             LEFT JOIN alex a314_275 ON a314_275.up=a314_271.id AND a314_275.t=275 
                             LEFT JOIN alex a314_276 ON a314_276.up=a314_271.id AND a314_276.t=276 
                             WHERE a314_271.up!=0 AND length(a314_271.val)!=0 AND a314_271.t=271 AND a314_275.val>='20190902' AND a314_275.val<='20190903' )) 'Ср.вз.цена' 
FROM alex a271 
LEFT JOIN alex a275 ON a275.up=a271.id AND a275.t=275 
LEFT JOIN alex a276 ON a276.up=a271.id AND a276.t=276 
LEFT JOIN alex a277 ON a277.up=a271.id AND a277.t=277 
WHERE a271.up!=0 AND length(a271.val)!=0 AND a271.t=271 AND a275.val>='20190902' AND a275.val<='20190903'



Если посмотреть на запрос, то станет понятно, что это даже хуже чем классический EAV, тут просто кромешный п....ц.

Из области, как плюнуть на головы всем разработчикам СУБД, утритесь придурки.

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

Прочекал с чего всё началось и... заплакал.

Любого размера...
Не имея проблем с производительностью...

Плевок всторону даже "обычного EAV".

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


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