powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
25 сообщений из 454, страница 17 из 19
Как назвать эту структуру и подход, основанные на EAV?
    #39859599
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerhVosttМеня даже уже не великий и беспощадный смысл, который вкладывал автор в это. А как он к этому пришёл. Вот как рассуждал?

Да как обычно в таких случаях. Начинает знакомиться с предметной областью. Читает SQL. Думает: как бы круто программировать? Натыкается на EAV: о, круто. Особенно читая статью другого такого же ламера. Пробует. Плевать, что медленно и неудобно, зато один раз напишу крутой системный софт - это же интересно - и всё будет летать. Блин. Не летает. Тогда подрихтую модель, чтобы залетало. Совсем круто! Правда, не летает, но зато совсем своё, дайте мне нобелевку!
Что-то накал обсуждения ослаб. Подкину немного.

Когда-то, в 70-е, программное обеспечение часто разрабатывалось почти с нуля, а вычислительные мощности в принципе не позволяли создать конструктор, подобный IdeaV: он требовал бы на 3 порядка больше ресурсов. В 1000 раз больше ресурсов.

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

Далее, в 90-е, программисты стали использовать, в основном, не свои наработки, а сторонние библиотеки и инструменты разработки. Чужой инструментарий часто был закрыт, решения работали медленнее, страдала совместимость. Тем не менее, использование библиотек ускоряло разработку на порядок-два. Вычислительные мощности росли, поэтому все легко мирились с тем, что их требуется также на 2 порядка больше. Теоретически, конструктор требовал бы в 10 раз больше ресурсов.

В 90-х были последние известные попытки создать нечто подобное моему конструктору, после чего идея, которая далеко не нова, была признана неработоспособной. Я внимательно изучил один из популярнейших эпизодов. Причина неудач: разработчик не опускался до низкого уровня написания программ, по привычке 80-90-х годов таща за собой библиотеки и стереотипы разработки. Вместо фундаментальной проработки ядра ставка была сделана на новейшие технологии.

В 2000-х мы наблюдали прежние темпы роста вычислительной мощности. Библиотеки программ стали шире, мощнее и устойчивее. При этом бесконечное богатство инструментария разработки сыграло с разработчиками злую шутку: выбор и овладение инструментом требовало столько же усилий, сколько тратили программисты из 90-х, при примерно одинаковом конечном результате. Скорость разработки уже не росла пропорционально накладным вычислительным расходам, как это было в 70-90-е годы.

Расчетная эффективность конструктора и традиционной разработки сравнялись в нулевых годах. В 2003 году мной, в качестве хобби, был спроектирован конструктор, а в 2006 запущен в реальном проекте (работает до сих пор). Конструктор использует простейшие технологии, основанные на наработках прошлого века, достаточно быстрые и надежные для своих задач.

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

Да это уже понятно, пользователь не знает о способе хранения, итак понятно. И то, что под пользователем вы понимаете и разработчиков, которые работают с "движком", и тоже не знают. Ясно всё это, ясно.

Но.

Зачем вот это форменное издевательство внутри? Какой профит именно от квинтетной модели?

Ваши цели могут быть достигнуты 100500 способов и классическим EAV.

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

Ваше видение истории доставляет, но как говорится, для кого-то Москва это сырой подвал, а для кого-то вид на Кремль с чашкой кофе.

Про квинтеты можете ответить? Не про конструкторы, не про скрытую магию для высшего существа, лениво двигающего мышкой.

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

Ваше видение истории доставляет, но как говорится, для кого-то Москва это сырой подвал, а для кого-то вид на Кремль с чашкой кофе.

Про квинтеты можете ответить? Не про конструкторы, не про скрытую магию для высшего существа, лениво двигающего мышкой.

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

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

Я вам уже показывал математику выше.

Там, где требуется 2 поля для хранения сущности, у вас 5.
Многосложная семантическая нагрузка на поля и комбинацию полей.

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

Почитайте. Шиза в кубе, враньё, помешанное на фантазии лсд-шника...
Мошенничество в чистом виде.

Новый язык программирования — тренд 2019‑2021 гг.

Если это такой мощный "язык программирования", почему бы не зарабатывать на нём, а не привлекать доверчивых одептов за деньги?

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

Использование EAV без ORM требует ручного написания громоздких запросов. Это неприятно. Регулярно подглядывать в документацию или базу, какой атрибут как с чем связан - это утомительно.

В ORM, под которой обычные широкие таблицы (не EAV), каждое изменение набора атрибутов класса, отображённого на эти таблицы, требует изменения схемы БД. Для этого приходится делать громоздкие "миграции", которые могут требовать временного вывода системы из эксплуатации.
При этом ORM, как правило, работают с одиночными объектами, а не с большмим датасетами (коллекциями объектов). При такой работе однострочными INSERT\UPDATE широкие таблицы особой выгоды по сравнению с EAV не дают.

Соответственно, ORM поверх EAV обладает следующими достоинствами:
Высокая степень оперативной готовности - изменение набора полей класса не требует изменения схемы БД, следовательно миграции не нужны. Все изменения можно накатывать на лету.
Скорость разработки - не нужно руками джойнить атрибуты.
Потенциально высокая надёжность - из-за фиксированной структуры хранилища (EAV) все запросы и джойны, которые формирует ORM, одинаковы для любых атрибутов. Соответственно, код ORM будет простым. Меньше кода - меньше шансов на ошибку разработчиков ORM.

Учитывая, что в системе реализован конструктор интерфейса (если я правильно понял картинки), и планы автора сделать собственное хранилище вместо РСУБД, получается самодостаточное решение интерфейс + ORM + EAV + хранение.
Что-то наподобие MS Access или FOXPRO, но с указанными выше достоинствами.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859627
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttdrynnyКак раз квинтеты и позволяют создать конструктор и, в отличие от 1С и SAP, в нём нужно будет намного меньше и проще программировать.

Ну вот нам всем и непонятно, почему и с какой кстати квинтеты позволяют создать конструктор.
В 1С тоже модель динамическая и создаётся мышкой.

Чем тут квинтеты реально помогут?

Вот смотрите, давайте в лоб, если непонятно.

Такая структура таблиц у вас могла бы быть для хранения мета-данных:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
-- типы сущностей
create table ETYPES (
  id int PK,
  name varchar(100),
  description varchar(1000)  
  ...
)

-- типы атрибутов
create table ATYPES (
  id int PK,
  name varchar(100),
  description varchar(1000)  
  ...
)

-- атрибуты типов
create table ATTRIBUTES (
  id int PK,
  eTypeId int FK(ETYPES),
  aTypeId int FK(ATYPES),
  order int,
  name varchar(100),
  description varchar(1000)
  ...
)

-- сущности (данные)
create table ENTITIES (
  id int PK,
  typeId int FK(ETYPES)
  ...
)

-- значения атрибутов сущностей
create table VALUES (
  entityId int FK(ENTITIES),
  attributeId int FK(ATTRIBUTES),
  value varchar(4000)
  ...
)



И она работает! Ещё можно добавить отдельно связи с разными параметрами. Хотя и так связи можно выразить через значения атрибутов-связей. Тут всё понятно, всё семантически разложено и даже поддерживается СУБД. Например, вы не можете указать вместо типа сущности, тип атрибута, или вместо сущности сослаться на тип, СУБД не даст. Такое можно сопровождать, и даже запросы будут проще, чем у вас.

Тут ваши зубодробительные квинтеты можно разложить по таблицам нормальным и понятным образом. Конечно это всё равно хуже нормализованной БД по ряду причин, но со своими плюсами (динамика), однако на порядки лучше ваших квинтетов, которые без каких-либо видимых причин вносят непомерную сложность.

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

Может вы недостаточно всё усложнили? Может 5 полей -- это много? Давайте как-нибудь в 3 уместим? В идеале конечно, всё в одно поле одной таблицы всё засунуть, давайте идти до конца. Ну зачем эти глупые полумеры? :)Хм, EAV и 5 таблиц.
Кажется Хвост решил успеть на подножку уходящего квинтетного паровоза =)

Данные же могут храниться точно так же.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859637
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одни пишут, другие критикуют. Хорошо, когда за это кто то им платит :)
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859654
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gerros следующими достоинствами:
Высокая степень оперативной готовности - изменение набора полей класса не требует изменения схемы БД, следовательно миграции не нужны. Все изменения можно накатывать на лету.

Скорость разработки

код ORM будет простым. Меньше кода - меньше шансов на ошибку разработчиков ORM.


Ну т.е. некое чисто разработчицкое средство быстрого прототипирования MDM-платформ? :)
Т.е. некое ООО "Корпоративные справочники", куда приходят корп.заказчики, и говорят "а сварганьте мне справочник материалов живенько ... а какой набор атрибутов? ... а хз (и далее крупными мазками, пальцами в воздухе) ... а вот пожалста нате".

Если к этому прикрутить кнопку-визард "сгенерировать продуктивную MDM-платформу", которая из EAV развернёт в нормальную структуру БД, со связязми и индексами, - то наверное взлетит. А если оно будет уметь корректно и безопасно "догенерять" изменения на лету на уже ранее сгенерённую MDMу (особенно набитую продутивными данными), то совсем взлетит.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859690
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerrosТут многие интересовались у автора, в чём глубокий смысл его творения.
Не готов обсуждать степень новизны, просто попробую пофантазировать на тему применимости...
Фактически мы имеем ORM, у которой под капотом EAV. По-моему, эта комбинация лучше чем EAV без ORM или ORM без EAV.

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

Я не вижу никаких преимуществ перед хранением той же структуры данных с мета данными, но разбитой на несколько таблиц. Зато виду очевидное усложнение на ровном месте и кучу недостатков

Учитывая, что срок разработки прототипа тянется с 2006 года, складываются большие сомнения правильную ли сферу деятельности выбрал автор

Глядя на его промо сайт я утверждают во мнении, что перед нами обыкновенный бездарный мошенник.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859694
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerrosВ ORM, под которой обычные широкие таблицы (не EAV), каждое изменение набора атрибутов класса, отображённого на эти таблицы, требует изменения схемы БД. Для этого приходится делать громоздкие "миграции", которые могут требовать временного вывода системы из эксплуатации.
При этом ORM, как правило, работают с одиночными объектами, а не с большмим датасетами (коллекциями объектов). При такой работе однострочными INSERT\UPDATE широкие таблицы особой выгоды по сравнению с EAV не дают.
.
В ядерную часть логики и объектов сложной и объемной системы изменения вносятся редко, очень редко или почти никогда - после вызревания системы. Поэтому делать на EAV ядро я резона не вижу. Приложить его сбоку для настроек и кастомизаций системы в том или ином виде можно. Равно как и ==свой новый язык программирования, который намного лучше тех, что уже есть в изобилии== - профит несет редко. И то что оно есть в 1С - так, 1С любят не за это. и SAP - не за ABAP.

особого профита от того, что в EAV ==можно легко добавить атрибут не делая alter table add ... == добавить легко. А вот с проапдейтить и проиндексировать - сразу интереснее. поэтому, по сути- баш на баш как минимум. То что атрибуты добавляются на ==живой, работающей системе и ничего! == - так с ними должен работать код, для встраивания коего в общий контур все же придется нажать стоп-кран. поэтому тоже.... профит сомнительный. в целом.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39859708
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovи SAP - не за ABAP

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

Я вам уже показывал математику выше.

Там, где требуется 2 поля для хранения сущности, у вас 5.
Многосложная семантическая нагрузка на поля и комбинацию полей.

Какой профит? В чём смысл?
При чем тут семантическая нагрузка и какое отношение она имеет к пользователю, у которого визуальный редактор и всё просто?

Факт 2 против 5 вообще ни о чем.

Но давайте другие рассмотрим. По вашей методике — сравним числа :-)

1) Поскольку мы решили скрывать от пользователя все несущественные детали, такие как связующие ID, например, схема будет несколько упрощена: удалены упоминания ID и объединены названия сущностей и их ключевые значения.

Классическая схема:


В квинтетах:


Теперь мы видим 6 разных полей данных вместо 9, а вся схема предлагает нам прочитать и осмыслить 7 слов вместо 13.

2) Ядро для работы с квинтетной моделью состоит из 2300 строк кода и будет только сокращаться при написании нового ядра СУБД. Оно занимает пару мегабайт в оперативной памяти, оставляя много места под данные, кэш индексов и прочие полезные вещи.
Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests
(там в среднем 32 запроса в секунду занимают суммарно менее 100МБ памяти)
Сравните с вашими мелкосервисами на Java и предъявите сюда ваши картинки.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860006
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyПри чем тут семантическая нагрузка и какое отношение она имеет к пользователю, у которого визуальный редактор и всё просто?

Разработчик. Любой разработчик, который будет нанят в команду разрабатывать эту байду будет вынужден знатно ибстись с этими квинтетами для развития системы.


drynnyФакт 2 против 5 вообще ни о чем.

Факт о чём.

1. Ровно столько полей, сколько нужно для задачи, против любого другого количества ненужного обвеса.
2. Каждое из полей несёт одну смысловую нагрузку как для разработчика, так и для СУБД, катастрофически снижая возможность ошибки.
3. Ограничения целостности на уровне СУБД, против ОЦ на уровне ПО. СУБД тупо не даст выстрелить в ногу на самом элементарном уровне. В ваши квинтеты можно записать что угодно и потом разгребать это говно.


drynnyТеперь мы видим 6 разных полей данных вместо 9, а вся схема предлагает нам прочитать и осмыслить 7 слов вместо 13.

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


drynny2) Ядро для работы с квинтетной моделью состоит из 2300 строк кода и будет только сокращаться при написании нового ядра СУБД. Оно занимает пару мегабайт в оперативной памяти, оставляя много места под данные, кэш индексов и прочие полезные вещи.
Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests
(там в среднем 32 запроса в секунду занимают суммарно менее 100МБ памяти)

Разница между запросами по квинтетами и обычными таблицами -- космос. ВЫ их даже не осмелились привести, сравнивая _индексированные_ запросы на квинтетах с _неиндексированными_ данными на классических таблицах. И это на простых запросах, на элементарных.

А на сложных запросах деградация будет адовая.

drynnyСравните с вашими мелкосервисами на Java и предъявите сюда ваши картинки.

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

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

Ничего. Вы либо к разработке ПО имеете такое же отношение, как ёжик к балерине, либо просто бездарный неуч, который не может ответить на простейший вопрос.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860010
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynnyИспользование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests
Блог компании Неофлекс, компания Неофлекс впаривает такую дичь клиентам?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860011
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDevdrynnyИспользование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests
Блог компании Неофлекс, компания Неофлекс впаривает такую дичь клиентам?

Да это писец. Стоит сразу давать ссылку на эти квинтеты тем, кто захочет с неофлексом связаться, чтоб даже близко не подходили.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860023
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynny2) Ядро для работы с квинтетной моделью состоит из 2300 строк кода и будет только сокращаться при написании нового ядра СУБД. Оно занимает пару мегабайт в оперативной памяти, оставляя много места под данные, кэш индексов и прочие полезные вещи.
Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests
(там в среднем 32 запроса в секунду занимают суммарно менее 100МБ памяти)
Сравните с вашими мелкосервисами на Java и предъявите сюда ваши картинки.
Я вот этот пассаж про ядро вообще не понял. Ни строки кода ни 100 Мб не имеют никакого значения
для оценки качества среднего бизнес-продукта данного уровня.

Вы не не прошивку к роутеру делаете верно? Зачем выпячивать строки кода?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860027
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ вот этот пассаж про ядро вообще не понял. Ни строки кода ни 100 Мб не имеют никакого значения для оценки качества среднего бизнес-продукта данного уровня.
Ну почему же не имеют. Они показывают, что наш друг опять ярко лопухнулся - у него одна строка воплощается почти что в килобайт нагенерённого кода. Видимо, он пишет оооочень длинные строки. А сейчас побежит придумывать, что "пара мегабайт" - это не код, а данные, и объяснять, какие такие данные хранятся в этом ядре.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860055
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, softwarer,

хоть я и любитель оценить потребление ресурсов, но

во-первых мерять нужно с умом, как и весь бенчмаркинг впрочем. И 100Мб может оказаться и хорошим и плохим результатом, в зависимости от дальнейшей функции от нагрузки

во-вторых мне больше не понравилось по ссылке Тем не менее, при 20-25 запросах в секунду (пиковая нагрузка при работе 20 пользователей), сервер укладывается в требования по производительности — 1 секунда на отклик. В целом ресурсы его недогружены, хотя это самый бюджетный вариант: 1 ядро 2.4 ГГц при 1 ГБ оперативной памяти.25RPS это какой то трэш вне зависимости от задачи

собственно, может там задача на расчет 100 биткойнов, но сомневаюсь и не вникал
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860185
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем не менее, при 20-25 запросах в секунду (пиковая нагрузка при работе 20 пользователей), сервер укладывается в требования по производительности — 1 секунда на отклик.
Вот это требования к производительности, так требования: 1 секунда на отклик сервера. Сильно.

У нас за прошедшие сутки в среднем 152,5 запроса в секунду, отклик сервера - 94,4 миллисекунды.
Не, квинтеты точно не для нас :)
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860323
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЧто-то накал обсуждения ослаб. Подкину немного.
у меня интерес ненадолго проснется при выкладывании документации по системе (статьи на хабре это не она) тексте соглашения по использованию, с тем что по чем стоит, и общедоступным в песочнице примером ..... требующим сравнительно сложного скручивания и работы с данными, ..... ну там агрегация на пять 6 табличек чего нибудь, при проверке условия наличия чего то где то в другом месте.

ну и там чтобы получались отчеты типа пять лучших по показателю А из сотни проигравших по показателю Б. ну что то такое, что на просто БД собирается малой пакостности запросом с парой EXISTS и аналитическими функциями.

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

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

Простейшие запросы генерируют увесистые тяжёлые джойны и условия выборок, которые на 99% технические, нежели бизнесовые.

Будь там что по-сложнее, из реального мира, будет уже не 1 секунда, а больше, местами на порядки.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39860333
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте я немножко сделаю шаг назад. Я уже спрашивал Архитектора про API.
На основании индексной информации я сделал набросок к квинтетному интерфейсу.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
trait QuntetBasicApi {

  def quintetById(id : Int) : Quintet = ???

  def quintetChainStartWith(id : Int) : LazyList[Quintet] = ???

  def quintetByDatatypeValue(datatype : Int, value : Option[Int]) : LazyList[Quintet] = ???

  def quintetByParentDatatype(parent : Int, dataType : Option[Int]) : LazyList[Quintet] = ???

}



Я включил базовый набор поисковых атрибутов с учотом индексов. Они расположены таким образом
чтобы обеспечивать быстрый доступ к множествам квинтетов.

Все прочие проекции которые можно придумать по идее должны покрываться этим API. Дополнительные
фильтры по прочим полям я пока не включил. Их можно отфильтровать позже.

Исключение - метод quintetChainStartWith(). Его задача - выборка поддеревьев по id корня.

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


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