|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
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-х годов. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 22:04 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyКвинтет, он же для другого. Пользователь не пишет код и не знает ничего о квинтетах. Да это уже понятно, пользователь не знает о способе хранения, итак понятно. И то, что под пользователем вы понимаете и разработчиков, которые работают с "движком", и тоже не знают. Ясно всё это, ясно. Но. Зачем вот это форменное издевательство внутри? Какой профит именно от квинтетной модели? Ваши цели могут быть достигнуты 100500 способов и классическим EAV. Но нахрена всё вот именно так делать? Вы сами хотя бы для себя понимаете? Зачем квинтеты? В чём профит? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 22:05 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny, Ваше видение истории доставляет, но как говорится, для кого-то Москва это сырой подвал, а для кого-то вид на Кремль с чашкой кофе. Про квинтеты можете ответить? Не про конструкторы, не про скрытую магию для высшего существа, лениво двигающего мышкой. Про реализацию. Какого хрена так всё усложнять? В чём смысл? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 22:09 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
hVosttdrynny, Ваше видение истории доставляет, но как говорится, для кого-то Москва это сырой подвал, а для кого-то вид на Кремль с чашкой кофе. Про квинтеты можете ответить? Не про конструкторы, не про скрытую магию для высшего существа, лениво двигающего мышкой. Про реализацию. Какого хрена так всё усложнять? В чём смысл? Где вы видите сложность и в чём её измеряете? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 22:11 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny Расчетная эффективность конструктора и традиционной разработки сравнялись в нулевых годах. Хера себе. То-то я смотрю как все на конструторах вокруг делается... Что ещё за шизофренические выводы? Откуда? График нарисованный в пейнте не приложите? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 22:12 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyГде вы видите сложность и в чём её измеряете? Я вам уже показывал математику выше. Там, где требуется 2 поля для хранения сущности, у вас 5. Многосложная семантическая нагрузка на поля и комбинацию полей. Какой профит? В чём смысл? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 22:17 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
https://tryjob.ru/index.html Почитайте. Шиза в кубе, враньё, помешанное на фантазии лсд-шника... Мошенничество в чистом виде. Новый язык программирования — тренд 2019‑2021 гг. Если это такой мощный "язык программирования", почему бы не зарабатывать на нём, а не привлекать доверчивых одептов за деньги? Карма существует, ох и огребёте за свою грязную деятельность. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 22:23 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Тут многие интересовались у автора, в чём глубокий смысл его творения. Не готов обсуждать степень новизны, просто попробую пофантазировать на тему применимости... Фактически мы имеем 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, но с указанными выше достоинствами. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 22:52 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
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.
И она работает! Ещё можно добавить отдельно связи с разными параметрами. Хотя и так связи можно выразить через значения атрибутов-связей. Тут всё понятно, всё семантически разложено и даже поддерживается СУБД. Например, вы не можете указать вместо типа сущности, тип атрибута, или вместо сущности сослаться на тип, СУБД не даст. Такое можно сопровождать, и даже запросы будут проще, чем у вас. Тут ваши зубодробительные квинтеты можно разложить по таблицам нормальным и понятным образом. Конечно это всё равно хуже нормализованной БД по ряду причин, но со своими плюсами (динамика), однако на порядки лучше ваших квинтетов, которые без каких-либо видимых причин вносят непомерную сложность. Вы сами видите, до сих пор народ не может въехать толком как ваша байда должна работать. Ну и нафига это всё? До сих пор непонятно, уже какая страница пошла, а вы всё ответить не можете, для чего такой овер-инжениринг был нужен? Какую цель это решает? Ну зачем это всё? Может вы недостаточно всё усложнили? Может 5 полей -- это много? Давайте как-нибудь в 3 уместим? В идеале конечно, всё в одно поле одной таблицы всё засунуть, давайте идти до конца. Ну зачем эти глупые полумеры? :)Хм, EAV и 5 таблиц. Кажется Хвост решил успеть на подножку уходящего квинтетного паровоза =) Данные же могут храниться точно так же. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2019, 23:10 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Одни пишут, другие критикуют. Хорошо, когда за это кто то им платит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 01:17 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Gerros следующими достоинствами: Высокая степень оперативной готовности - изменение набора полей класса не требует изменения схемы БД, следовательно миграции не нужны. Все изменения можно накатывать на лету. Скорость разработки код ORM будет простым. Меньше кода - меньше шансов на ошибку разработчиков ORM. Ну т.е. некое чисто разработчицкое средство быстрого прототипирования MDM-платформ? :) Т.е. некое ООО "Корпоративные справочники", куда приходят корп.заказчики, и говорят "а сварганьте мне справочник материалов живенько ... а какой набор атрибутов? ... а хз (и далее крупными мазками, пальцами в воздухе) ... а вот пожалста нате". Если к этому прикрутить кнопку-визард "сгенерировать продуктивную MDM-платформу", которая из EAV развернёт в нормальную структуру БД, со связязми и индексами, - то наверное взлетит. А если оно будет уметь корректно и безопасно "догенерять" изменения на лету на уже ранее сгенерённую MDMу (особенно набитую продутивными данными), то совсем взлетит. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 07:04 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
GerrosТут многие интересовались у автора, в чём глубокий смысл его творения. Не готов обсуждать степень новизны, просто попробую пофантазировать на тему применимости... Фактически мы имеем ORM, у которой под капотом EAV. По-моему, эта комбинация лучше чем EAV без ORM или ORM без EAV. Вопрос не в этом, обсуждается не конструктор и формошлепство. А выбранный способ организации данных, вся бд в одной таблице из 5 полей. И пусть это только прототип, уже этом этапе вызывает большие вопросы какие преимущества это даёт. Я не вижу никаких преимуществ перед хранением той же структуры данных с мета данными, но разбитой на несколько таблиц. Зато виду очевидное усложнение на ровном месте и кучу недостатков Учитывая, что срок разработки прототипа тянется с 2006 года, складываются большие сомнения правильную ли сферу деятельности выбрал автор Глядя на его промо сайт я утверждают во мнении, что перед нами обыкновенный бездарный мошенник. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 09:35 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
GerrosВ ORM, под которой обычные широкие таблицы (не EAV), каждое изменение набора атрибутов класса, отображённого на эти таблицы, требует изменения схемы БД. Для этого приходится делать громоздкие "миграции", которые могут требовать временного вывода системы из эксплуатации. При этом ORM, как правило, работают с одиночными объектами, а не с большмим датасетами (коллекциями объектов). При такой работе однострочными INSERT\UPDATE широкие таблицы особой выгоды по сравнению с EAV не дают. . В ядерную часть логики и объектов сложной и объемной системы изменения вносятся редко, очень редко или почти никогда - после вызревания системы. Поэтому делать на EAV ядро я резона не вижу. Приложить его сбоку для настроек и кастомизаций системы в том или ином виде можно. Равно как и ==свой новый язык программирования, который намного лучше тех, что уже есть в изобилии== - профит несет редко. И то что оно есть в 1С - так, 1С любят не за это. и SAP - не за ABAP. особого профита от того, что в EAV ==можно легко добавить атрибут не делая alter table add ... == добавить легко. А вот с проапдейтить и проиндексировать - сразу интереснее. поэтому, по сути- баш на баш как минимум. То что атрибуты добавляются на ==живой, работающей системе и ничего! == - так с ними должен работать код, для встраивания коего в общий контур все же придется нажать стоп-кран. поэтому тоже.... профит сомнительный. в целом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 09:41 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Vladimir Baskakovи SAP - не за ABAP ABAP это наследие Гитлера ) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 10:06 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
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 и предъявите сюда ваши картинки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 16:00 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
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 и предъявите сюда ваши картинки. Нет нужды, в интернете всё гуглится, есть книги, статьи, масштабные исследования. А у вас чё, три картинки и нарисованные в пейнте графики. И вы опять не смогли пояснить в чём профит от квинтетов. Одни и те же картинки постите, которые вообще ничего не говорят о преимуществах квинтетов, как о способе организации данных. Ничего. Вы либо к разработке ПО имеете такое же отношение, как ёжик к балерине, либо просто бездарный неуч, который не может ответить на простейший вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 18:58 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynnyИспользование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests Блог компании Неофлекс, компания Неофлекс впаривает такую дичь клиентам? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 19:05 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
iOracleDevdrynnyИспользование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests Блог компании Неофлекс, компания Неофлекс впаривает такую дичь клиентам? Да это писец. Стоит сразу давать ссылку на эти квинтеты тем, кто захочет с неофлексом связаться, чтоб даже близко не подходили. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 19:07 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
drynny2) Ядро для работы с квинтетной моделью состоит из 2300 строк кода и будет только сокращаться при написании нового ядра СУБД. Оно занимает пару мегабайт в оперативной памяти, оставляя много места под данные, кэш индексов и прочие полезные вещи. Использование памяти можете посмотреть здесь: habr.com/ru/company/neoflex/blog/451218/#tests (там в среднем 32 запроса в секунду занимают суммарно менее 100МБ памяти) Сравните с вашими мелкосервисами на Java и предъявите сюда ваши картинки. Я вот этот пассаж про ядро вообще не понял. Ни строки кода ни 100 Мб не имеют никакого значения для оценки качества среднего бизнес-продукта данного уровня. Вы не не прошивку к роутеру делаете верно? Зачем выпячивать строки кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 19:48 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
maytonЯ вот этот пассаж про ядро вообще не понял. Ни строки кода ни 100 Мб не имеют никакого значения для оценки качества среднего бизнес-продукта данного уровня. Ну почему же не имеют. Они показывают, что наш друг опять ярко лопухнулся - у него одна строка воплощается почти что в килобайт нагенерённого кода. Видимо, он пишет оооочень длинные строки. А сейчас побежит придумывать, что "пара мегабайт" - это не код, а данные, и объяснять, какие такие данные хранятся в этом ядре. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 19:59 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
mayton, softwarer, хоть я и любитель оценить потребление ресурсов, но во-первых мерять нужно с умом, как и весь бенчмаркинг впрочем. И 100Мб может оказаться и хорошим и плохим результатом, в зависимости от дальнейшей функции от нагрузки во-вторых мне больше не понравилось по ссылке Тем не менее, при 20-25 запросах в секунду (пиковая нагрузка при работе 20 пользователей), сервер укладывается в требования по производительности — 1 секунда на отклик. В целом ресурсы его недогружены, хотя это самый бюджетный вариант: 1 ядро 2.4 ГГц при 1 ГБ оперативной памяти.25RPS это какой то трэш вне зависимости от задачи собственно, может там задача на расчет 100 биткойнов, но сомневаюсь и не вникал ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 22:45 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Тем не менее, при 20-25 запросах в секунду (пиковая нагрузка при работе 20 пользователей), сервер укладывается в требования по производительности — 1 секунда на отклик. Вот это требования к производительности, так требования: 1 секунда на отклик сервера. Сильно. У нас за прошедшие сутки в среднем 152,5 запроса в секунду, отклик сервера - 94,4 миллисекунды. Не, квинтеты точно не для нас :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 10:51 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
авторЧто-то накал обсуждения ослаб. Подкину немного. у меня интерес ненадолго проснется при выкладывании документации по системе (статьи на хабре это не она) тексте соглашения по использованию, с тем что по чем стоит, и общедоступным в песочнице примером ..... требующим сравнительно сложного скручивания и работы с данными, ..... ну там агрегация на пять 6 табличек чего нибудь, при проверке условия наличия чего то где то в другом месте. ну и там чтобы получались отчеты типа пять лучших по показателю А из сотни проигравших по показателю Б. ну что то такое, что на просто БД собирается малой пакостности запросом с парой EXISTS и аналитическими функциями. Не запредельно сложно, а так. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 14:02 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Дмитрий МухВот это требования к производительности, так требования: 1 секунда на отклик сервера. Сильно. Нужно понимать, что там запросы максимально примитивные с точки зрения модели данных. Простейшие запросы генерируют увесистые тяжёлые джойны и условия выборок, которые на 99% технические, нежели бизнесовые. Будь там что по-сложнее, из реального мира, будет уже не 1 секунда, а больше, местами на порядки. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 14:19 |
|
Как назвать эту структуру и подход, основанные на EAV?
|
|||
---|---|---|---|
#18+
Давайте я немножко сделаю шаг назад. Я уже спрашивал Архитектора про API. На основании индексной информации я сделал набросок к квинтетному интерфейсу. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Я включил базовый набор поисковых атрибутов с учотом индексов. Они расположены таким образом чтобы обеспечивать быстрый доступ к множествам квинтетов. Все прочие проекции которые можно придумать по идее должны покрываться этим API. Дополнительные фильтры по прочим полям я пока не включил. Их можно отфильтровать позже. Исключение - метод quintetChainStartWith(). Его задача - выборка поддеревьев по id корня. drynny - прошу вас дать комментарии по этому API. Чего в нем еще не хватает для полноценной работы? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 14:19 |
|
|
start [/forum/topic.php?fid=32&msg=39859654&tid=1539762]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 153ms |
0 / 0 |