powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / одновременный учет МЦ разных категорий
14 сообщений из 39, страница 2 из 2
одновременный учет МЦ разных категорий
    #38731502
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlybaЗлой БобрОписанный вами вариант применим для высоконагруженных систем с огромным количеством инсертов.

Не означает ли это, что подход как раз-таки эффективен?
Ну тогда озвучьте замеры инсертов. Если у вас меньше 50 в секунду то нестоит даже и задумываться об этом.
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38731506
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVУ меня любая сущность может иметь список дополнительных параметров (легко настраиваемых).
На огромных массивах данных не проверял. Но не думаю, что у Вас огромные массивы данных.
При грамотной реализации - производительности хватает.
Да все это отлично работает и легко нормализуется, только в самом низу будет предопределенный набор _типов_ характеристик. Число, строка, ну что придумаете. Штук пять-десять, не больше. И вот их уже в разных таблицах хранить, ну или в одной в разных колонках для вящей простоты.
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38731635
Glyba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрНу тогда озвучьте замеры инсертов. Если у вас меньше 50 в секунду то нестоит даже и задумываться об этом.

Но чем для меня лучше окажется EAV, если у меня вдруг меньше 50 инсертов в секунду?
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38731686
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlybaНо чем для меня лучше окажется EAV, ...
Научитесь пользоваться замером производительности и сами увидите. Селект отработает в разы быстрее, если коротко.
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38731739
Glyba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Злой БобрНаучитесь пользоваться замером производительности и сами увидите. Селект отработает в разы быстрее, если коротко.[/quot]

Видимо, вам, в отличие от меня, и замерять производительность не нужно?
Вы и так уверены, что EAV покажет в разы лучший результат, чем схема с несколькими (по числу категорий) таблицами характеристик?
Или вы всё-таки реализовывали оба варианта и провели замеры?
Так скажите об этом - так хочется услышать уже о реальном опыте !.
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38731750
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glyba,

Я несобираюсь доказывать очевидное. Вы спросили - вам ответили. Если так нравится троллить то продолжайте в гордом одиночестве. )))
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38731780
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DogenДа все это отлично работает и легко нормализуется, только в самом низу будет предопределенный набор _типов_ характеристик. Число, строка, ну что придумаете. Штук пять-десять, не больше. И вот их уже в разных таблицах хранить, ну или в одной в разных колонках для вящей простоты.Я храню в одной таблице (поля int, float, str, date, bool). Ведь обращаясь к параметру всегда знаешь его тип.
Есть набор функций/процедур, делающих выборки простыми и удобными.

Не "вся система на ЕАВ", а "система с применением ЕАВ". Там где нужно.
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38731836
prog123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GlybaЗлой БобрКаждый подход имеет плюсы и минусы.

Совершенно верно. Поэтому и хочется услышать не соображения "как бы я стал бы делать", а репортажи из окопов.

Как то так?
Universal database schema US 20060225029 A1
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38732041
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНи в коем случае никаких новых таблиц.А почему так категорично?

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

GlybaЭффективен ли оказался такой подход (если кто это применил), когда для каждой из категорий применяется отдельная таблица характеристик?И так тоже было. Была и доведенная до абсурда база (к счастью только в качестве источника для конвертации) с кучей очень узких таблиц (с одним двумя полями) со связью 1:1 по ключу.

В любом случае в работающей системе не было никаких "легких и быстрых" изменений "на лету". Изменение (патч) накладывался на UAT систему, тестировалось, потом процесс повторялся для боевой системы.
Создавались ли при этом дополнительные таблицы или поля - разницы никакой.

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

Справедливости ради скажу, что имелся опыт использования "дополнительных определяемых пользователем полей" - EAV типа, когда пользователи имели возможность вносить и дофильтровывать инфу сразу, а не когда разработчик озаботился внести это изменение, новая версия протестирована, процесс миграции отлажен.
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38732351
Glyba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257На мой взгляд гибкость EAV схемы - миф, подходящий только для новой разработки, когда действительно правила меняются на ходу, данных мало, пользователи послушные.

Я пришел к такому же мнению.
Т.е. гибкость-то её сама по себе - не миф, но за неё приходится платить. Даже тогда, когда гибкость не нужна.

SERG1257Справедливости ради скажу, что имелся опыт использования "дополнительных определяемых пользователем полей" - EAV типа, когда пользователи имели возможность вносить и дофильтровывать инфу сразу, а не когда разработчик озаботился внести это изменение, новая версия протестирована, процесс миграции отлажен.

У нас другая ситуация - пользователи не будут ничего настраивать, т.к. введение новой категории в нашем случае означает и введение специфической бизнес-логики.
При этом возможность работы с каждой категорией будет отдельно приобретаться пользователем.
Для наглядности - предположим, 1-я категория - это необработанные алмазы, затем пользователь хочет автоматизировать еще и их движение в процессе обработки, при этом ему добавляются еще 2 категории - полуфабрикаты бриллиантов и готовые бриллианты.
Так что, сами понимаете, введением пользователем дополнительных полей не обойтись. Почему я и сказал в самом начале - категории предопределены. Почему-то некоторые не захотели в это поверить. Казалось бы, я лучше знаю, однако ж...
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38732421
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что, сами понимаете, введением пользователем дополнительных полей не обойтись.Это почему же ?
Это "тип товара" в карточке товара. В завис. от значения этого поля можно делать разные действия.
Параметры у них разные ? Ну дык сделать в ЕАВ параметры, зависящие от поля "тип товара".
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38732448
Glyba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЭто почему же ?

Потому что, например, введение категории "Полуфабрикаты" требует введение производственного контура в параллель к контуру движения МЦ. Иначе юзеру неинтересно будет, т.к. полуфабрикаты не просто перемещаются по местам хранения, но еще и участвуют в "производственных отношениях", т.к. перемещение полуфабриката происходит в рамках наряда на обработку - это не только движение МЦ.

LSVЭто "тип товара" в карточке товара. В завис. от значения этого поля можно делать разные действия.

Типы-то имеются в виду предопределенные, верно? О то ж!
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38732471
Glyba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЕсть набор функций/процедур, делающих выборки простыми и удобными.

А можно полюбопытствовать, как у вас это реализовано? Через динамический sql, или еще как-то?
Если через динамический sql, то где генерируется запрос - на клиенте, на сервере?
...
Рейтинг: 0 / 0
одновременный учет МЦ разных категорий
    #38732937
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlybaLSVЕсть набор функций/процедур, делающих выборки простыми и удобными.

А можно полюбопытствовать, как у вас это реализовано? Через динамический sql, или еще как-то?
Если через динамический sql, то где генерируется запрос - на клиенте, на сервере?Нет. Есть набор функций и ХП (т-sql).
Весь мой ЕАВ это аж три таблицы.
Если упрощенно, то:
* древовидный общий справочник всех доп.атрибутов
* таблица хранения значений: IDдокументa-IDатрибута-Значение
* таблица хранения значений: IDдокументa-IDатрибута-НаДату-Значение

последняя - для хранения логов/истории и атрибутов, зависящих от времени.

Их обслуживает статичный SQL. Причем простой.

Атрибуты простые, т.е. не составные, хотя можно долепить сложносоставные (типо: Категория ХХХ, утвержденная в YYYY, на основании QQQ и при участии ZZZ).
Схема позволяет, но неприятно усложнится.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / одновременный учет МЦ разных категорий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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