powered by simpleCommunicator - 2.0.46     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как назвать эту структуру и подход, основанные на EAV?
25 сообщений из 454, страница 3 из 19
Как назвать эту структуру и подход, основанные на EAV?
    #39846959
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНу и даю клиенту возможность описывать и создавать дополнительные поля в ext$somedata. Внимание, вопрос: опишите, что и сколько Вам потребуется сделать в eav, чтобы достичь того же результата. Не забудьте, например, про необходимость отфильтровать эту выборку по значению двух-трёх полей из "расширенного" набора.В Вашем случае создается новый объект в БД.
Ввести новые данные - полдела. Нужно их научиться еще и вычитывать. Н-р в отчетах.
Научиться реплицировать на другие БД. Это все может потребовать вмешательства разработчиков и админов.

В "моем" EAV:

1. Создается новая запись-карточка нового параметра (Имя,Тип,Форматировка,Связи,Безопасность и пр.).
2. Привязывается к сущностям, н-р к "товары" и "заказчики". Простая таблица Ключ+Ключ.
3. Теперь можно вносить данные: заходим в карточку товара -> "Добавить свойство" -> Выбираю из списка нужное свойство из доступных для "товар" -> Система предлагает ввести значение (варианты ввода и ограничения были настроены в п.1).
4. (профит)

Для массовой заливки данных в EAV нужен список карточек и значения.
Есть унифицированный импорт в любое EAV-свойство. Н-р из экселя. Его можно клонировать с доработками.

Никаких новых таблиц. Дописка кода нужна нечасто (н-р нестандартная проверка введенных данных) и она не нарушает работу другого кода.
Не нужны админские полномочия.
Это все (кроме дописки кода) может делать аналитик средней руки.

В любой момент этот новый параметр можно перенастроить или даже удалить вместе с данными.
Есть набор готовых процедур для вычитки данных, н-р для отчетов.

МССКЛ.

зы: ппц. Уже раза три про все это писал.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39846964
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что касается выборок с фильтрами....
Да, временами не очень удобно и не очень быстро. Зато все просто и одинаково. И для юзера и для разработчика.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847078
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМодель не идеальная, но гибкая.
Выше писал уже, что при ближайшем рассмотрении "гибкость и универсальность" оказывается практически знак равенства с "кривая, методологически непроработанная реализация бизнес-процесса в ИУСе".

Информационно-справочные системы, чтото типа "Центральный справочник материалов", - да наверное тут EAV чемто поможет, т.к. у разных групп номенклатуры МТР кардинально отличаются наборы характеристик.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847090
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoВвести новые данные - полдела. Нужно их научиться еще и вычитывать. Н-р в отчетах.
Я не уверен, что именно Вы подразумеваете под термином "вычитывать", но подозреваю, что как раз ту операцию, которая приведена в моём сообщении, и своей реализации которой Вы по понятным причинам не привели.

L_argo3. Теперь можно вносить данные: заходим в карточку товара -> "Добавить свойство" -> Выбираю из списка нужное свойство из доступных для "товар"
Вот так и подозревал. Вся эта громоздкая хрень, помимо прочего, провоцирует неудобный интерфейс. Делать пользователю больше нечего, как только вносить значения двадцати свойств каждое отдельным нажатием кнопки "добавить". И так по нескольким сотням тысячам записей товаров....

L_argo4. (профит)
Если это профит, не хотел бы я увидеть фейл.

L_argoЕсть унифицированный импорт ... Никаких новых таблиц. ... Не нужны админские полномочия ...
Вместо ответа на заданный вопрос Вы изображаете магнитофон, повторяющий заученные фразы.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847091
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldfanateИнформационно-справочные системы, чтото типа "Центральный справочник материалов", - да наверное тут EAV чемто поможет, т.к. у разных групп номенклатуры МТР кардинально отличаются наборы характеристик.
Хотя бы простое в лоб поле "характеристики" типа XMLType поможет гораздо лучше.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847123
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoНе нужны админские полномочия.
Это тоже вы в плюс записали?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847133
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю в "плюсы" - никаких ограничений: можно записать все что угодно и сколько угодно раз.
И читать тоже, даже если программист накосячит и будет запрашивать свойство несуществующего поля то ошибки не будет.
Да здавствуют программы без ошибок!
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847161
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergueidrynnyНу а что тут?

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

было бы интересно увидеть реализацию какого то кейса с демонстрацией возможностей, а до того не интересно время тратить...
У меня в системе используется аналогичное решение, но не для хранения всего и вся, а частично. Простые структуры да удобно, а чуть посложнее - все приплыли...
Ок, сегодня-завтра я запилю ролик про рекрутерскую систему, которая работает на этом решении. Если вы, как и я, ненавидите ролики, то могу накидать скриншотов с пояснениями. В общем, пропарюсь лишь бы получить ваш вариант названия.

Я помог знакомому рекрутеру делать стартап для массового подбора персонала.
Там есть приличный бизнес-процесс, включающий переходы откликов кандидатов по статусам, планирование интервью, рассылку email и смс, работу с вакансиями (набор этапов, трёхуровневые специализации, скрипты, тайм-слоты встреч, права, и т.д. и т.п.) и сайтом Хэдхантер (HH). Фрейм HH написан отдельно, используется как сторонний сервис, внедренный в интерфейс, остальное — в QDM (Quintet data model). Так вот, есть формы вакансии, отклика и прочие, состоящие из блоков, которые включаются/выключаются и совершают действия (вызывают запросы, запрашивают и сохраняют данные) в зависимости от статуса отклика или иного контекста. Приложение «ведет» пользователя, ограничивает, не дает спотыкаться.
Могу показать как это работает по скайпу, со всеми запросами, исходниками и формами. В целом, всё как в обычном приложении, но без python, php, nodejs.

Я мониторил загрузку, вот здесь опубликованы результаты за день: habr.com/ru/post/358934/#comment_18715197
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847179
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttНафига этот ущербный EAV и все его кривые производные, отлитые из костылей?

Если есть Event Sourcing и проекции?
Цель – сделать конструктор приложений. От костылей удалось избавиться, как это ни странно, и я желаю рассказать о внутренностях решения, если зритель готов смотреть, а не только с пеной у рта доказывать тут, что EAV – зло. Зло, кто ж спорит. Только я здесь не про EAV.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847186
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drynny

Ну назовите Универсальный Формат Типизированных Данных - УФТД (UFTD) .
Звучать будет внушительно . Или не Формат а Хранилище УХТД.

А если не секрет, какой движок БД подкладывали под модель, когда ворочали (поверю на слово) большим количеством данных?

чисто из любопытства вопрошаю, ибо со скепсисом ранее написавших согласен.

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

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

А как иначе пользователь должен поступить ? В вашем кейсе вообще ничего не описано.
Мною был описан кейс вставки редко используемых значений. Про массовую вставку я тоже писал.
Также можно сделать обработки для автоматического внесения данных. Разовых или регулярных.
И вызывать их по регламенту или одним кликом.

У меня еще есть возможность сразу показывать свойство. Без "добавить" и "выбрать". Это удобно, если свойство есть у большинства карточек. Сначала свойство горит пустым. Юзер просто одним кликом сразу вносит значение.
Значение может быть проверено на допустимость.
Свойство может быть единичным или списочным, т.е. допускать неск. разных значений.

Даже не представляю как подобный процесс можно сократить хотя бы на один клик.

Единственный недостаток: для сложных вставок и проверок нужно написать код. Иначе никак. Так это везде так.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847300
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл добавить, что свойство может хранить историю значений на дату, если нужно.
Также историю можно внести наперед, н-р скидка 10% с 01-09-2019.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847411
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerХотя бы простое в лоб поле "характеристики" типа XMLType поможет гораздо лучше.

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

ldfanateВедь там не только сложная структура характеристик получится,
Сложная структура - это, скорее, фича. По крайней мере, в неё естественным образом укладываются составные характеристики, массивы и т. п. Да и верифицировать можно по xml schema, что по сравнению с eav - огромная прибавка к надёжности.

ldfanateно и потребность строить потом, при распухании справочника, специализированные индексы для ускорения поиска, - типа "дай мне всю номенклатуру товарного департамента N кроме гаек вида M".
Может быть. Но к таким объёмам EAV уже просто давно загнётся без вариантов, поэтому я не считал бы это сравнительным недостатком.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847432
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoРеакция ожидаемая, но это реакция троля, а не инженера. Увы.
Ну конечно. Ваше "не трогай святое и любимое детище" - это реакция инженера, а моё "вот код", после которого Вам стыдно показывать свой - реакция тролля.

L_argoУ меня еще есть возможность
Смотрите. Ваше решение условно состоит из следующих частей. Во-первых, это API - то есть то, что "прикладной код" вызывает для реализации функционала. Во-вторых, некий движок метаинформации. И в-третьих, код реализации - то есть то, что получает команду в терминах метаинформации (например, "вернуть значение такой-то выборки" или "записать значение такого-то атрибута") и выполняет физический select, insert или update.

Представьте себе, что кто-то взял, добавил в метаинформацию данные типа "этот атрибут лежит в таком-то поле такой-то таблицы", а код реализации изменил таким образом, что вместо EAV тот начал работать с обычными плоскими таблицами. Если Ваше решение хорошо написано, сделать так вполне возможно и даже не особо сложно, верно? API при этом не изменилось, то есть приложение сможет работать с новой реализацией и даже не заметит подмену.

Так вот... мы говорим про EAV. Поэтому всё, что сохранится при такой подмене - к EAV уже не относится. Это функционал (хороший или плохой, удачно или неудачно реализованный) который Вы сделали, но который от EAV не зависит. В сравнении нас интересует то, что при такой подмене изменится - в лучшую или в худшую сторону.

Я утверждаю, что при такой замене довольно много изменится к лучшему и крайне мало - к худшему. И пока я не услышал ни одного конкретного примера, что же ухудшится - только общие слова типа "меняются таблицы", показывающие, что собеседник сам не понимает, что же станет хуже, просто религиозно верит, что станет.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847436
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и верифицировать можно по xml schema, что по сравнению с eav - огромная прибавка к надёжности.
Какая нафиг схема и надежность ? Схема примитивно проверяет в пределах xml.

Как верифицировать параметр "подтвержден=True", если по договору или доп.соглашению имеется просроченная задолженность или в связанном документе присутствует неподтвержденная позиция ?
Придется делать неск. типов проверок.

С данными в ХМЛ работать неудобно и вообще это противоречит 1 норм.форме. :)

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

На каком ещё "на лету"? Вы в БД не можете добавить колонку "на лету"? Я вот могу. Показать инструкцию?

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


L_argohVosttНафига этот ущербный EAV и все его кривые производные, отлитые из костылей?
Если есть Event Sourcing и проекции?Это куета и балабольство. Много слов, но по сути проблемы нет ничего.

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

Так СУБД как раз и придумана для управления этими таблицами. Вы чего их экономите?

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

Это не может быть целью.
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847497
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttdrynnyЦель – сделать конструктор приложений.
Это не может быть целью.Надо было написать "Цель - заработать денег" ?
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847500
drynny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
drynnySergueiпропущено...


было бы интересно увидеть реализацию какого то кейса с демонстрацией возможностей, а до того не интересно время тратить...
У меня в системе используется аналогичное решение, но не для хранения всего и вся, а частично. Простые структуры да удобно, а чуть посложнее - все приплыли...
Ок, сегодня-завтра я запилю ролик про рекрутерскую систему, которая работает на этом решении. Если вы, как и я, ненавидите ролики, то могу накидать скриншотов с пояснениями. В общем, пропарюсь лишь бы получить ваш вариант названия.

Я помог знакомому рекрутеру делать стартап для массового подбора персонала.
Там есть приличный бизнес-процесс, включающий переходы откликов кандидатов по статусам, планирование интервью, рассылку email и смс, работу с вакансиями (набор этапов, трёхуровневые специализации, скрипты, тайм-слоты встреч, права, и т.д. и т.п.) и сайтом Хэдхантер (HH). Фрейм HH написан отдельно, используется как сторонний сервис, внедренный в интерфейс, остальное — в QDM (Quintet data model). Так вот, есть формы вакансии, отклика и прочие, состоящие из блоков, которые включаются/выключаются и совершают действия (вызывают запросы, запрашивают и сохраняют данные) в зависимости от статуса отклика или иного контекста.

Обзорный ролик
YouTube Video
...
Рейтинг: 0 / 0
Как назвать эту структуру и подход, основанные на EAV?
    #39847504
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пришел исчо один умник.... менторски поумничать.
Никаких решений не предлагает. Просто умничает. Блещет остроумием.

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

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

Ну назовите Универсальный Формат Типизированных Данных - УФТД (UFTD) .
Звучать будет внушительно . Или не Формат а Хранилище УХТД.
«Ну ...» Слишком абстрактное название, не отражает суть.
Внушительность звучания вообще не важна.

Vladimir BaskakovА если не секрет, какой движок БД подкладывали под модель, когда ворочали (поверю на слово) большим количеством данных?

чисто из любопытства вопрошаю, ибо со скепсисом ранее написавших согласен.

Потому что получается - на табличную модель положили хранилище вашего формата, на базе которого работают снова таблицы. Наличие лишнего звена, создающего доп нагрузки очевидно ((((((((((( если оно работает поверх некоего SQL движка, оно никак не может работать быстрее и эффективнее. Только медленнее ((((((
Данные хранятся в MySQL, также можно использовать Postgre, в котором запросы MySQL прозрачно отрабатывают, кроме ключа LIMIT, который нужно передавать отдельно.

Скепсис – это же отлично! Но нужна конкретика.

Вот там выше товарищ вещает про объемы. Какие конкретно объемы убьют это решение? Не EAV, а именно это. Сам EAV неубиваем, и вы можете писать туда столько, сколько вместится на диск. А вот собрать работающее решение – другое дело.

Ранее мне говорили, что 100-200 тысяч записей – предел возможностей законченного решения на основе EAV. 2 млн называли недостижимой планкой. Я сделал прототипы и сервисы и на 4 млн, и на 80, и на 180. Судя по динамике, предела вообще нет. Знаете что отвечали оппоненты? А ничего, затыкались и уходили.

Ваше заявление про «таблицы поверх формата поверх таблиц» – это попытка на лету спроектировать мою систему, с последующим вердиктом, что это (то, что вы сочинили на ходу) работать не может.

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

Это не может быть целью.Надо было написать "Цель - заработать денег" ?


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


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