|
|
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
GlybaЗлой БобрОписанный вами вариант применим для высоконагруженных систем с огромным количеством инсертов. Не означает ли это, что подход как раз-таки эффективен? Ну тогда озвучьте замеры инсертов. Если у вас меньше 50 в секунду то нестоит даже и задумываться об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 13:03 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
LSVУ меня любая сущность может иметь список дополнительных параметров (легко настраиваемых). На огромных массивах данных не проверял. Но не думаю, что у Вас огромные массивы данных. При грамотной реализации - производительности хватает. Да все это отлично работает и легко нормализуется, только в самом низу будет предопределенный набор _типов_ характеристик. Число, строка, ну что придумаете. Штук пять-десять, не больше. И вот их уже в разных таблицах хранить, ну или в одной в разных колонках для вящей простоты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 13:04 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
Злой БобрНу тогда озвучьте замеры инсертов. Если у вас меньше 50 в секунду то нестоит даже и задумываться об этом. Но чем для меня лучше окажется EAV, если у меня вдруг меньше 50 инсертов в секунду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 14:18 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
GlybaНо чем для меня лучше окажется EAV, ... Научитесь пользоваться замером производительности и сами увидите. Селект отработает в разы быстрее, если коротко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 14:48 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
[quot Злой БобрНаучитесь пользоваться замером производительности и сами увидите. Селект отработает в разы быстрее, если коротко.[/quot] Видимо, вам, в отличие от меня, и замерять производительность не нужно? Вы и так уверены, что EAV покажет в разы лучший результат, чем схема с несколькими (по числу категорий) таблицами характеристик? Или вы всё-таки реализовывали оба варианта и провели замеры? Так скажите об этом - так хочется услышать уже о реальном опыте !. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 15:10 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
Glyba, Я несобираюсь доказывать очевидное. Вы спросили - вам ответили. Если так нравится троллить то продолжайте в гордом одиночестве. ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 15:17 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
DogenДа все это отлично работает и легко нормализуется, только в самом низу будет предопределенный набор _типов_ характеристик. Число, строка, ну что придумаете. Штук пять-десять, не больше. И вот их уже в разных таблицах хранить, ну или в одной в разных колонках для вящей простоты.Я храню в одной таблице (поля int, float, str, date, bool). Ведь обращаясь к параметру всегда знаешь его тип. Есть набор функций/процедур, делающих выборки простыми и удобными. Не "вся система на ЕАВ", а "система с применением ЕАВ". Там где нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 15:36 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
GlybaЗлой БобрКаждый подход имеет плюсы и минусы. Совершенно верно. Поэтому и хочется услышать не соображения "как бы я стал бы делать", а репортажи из окопов. Как то так? Universal database schema US 20060225029 A1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 15:59 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
LSVНи в коем случае никаких новых таблиц.А почему так категорично? Из окопов - с EAV были проблемы, решились постоением и синхронизацией параллельной "нормальной" системы для поисков, лучше бы она была изначально. Но это как в шутке про раков которые по пять, большие и вчера, или по три, но маленькие и сегодня. GlybaЭффективен ли оказался такой подход (если кто это применил), когда для каждой из категорий применяется отдельная таблица характеристик?И так тоже было. Была и доведенная до абсурда база (к счастью только в качестве источника для конвертации) с кучей очень узких таблиц (с одним двумя полями) со связью 1:1 по ключу. В любом случае в работающей системе не было никаких "легких и быстрых" изменений "на лету". Изменение (патч) накладывался на UAT систему, тестировалось, потом процесс повторялся для боевой системы. Создавались ли при этом дополнительные таблицы или поля - разницы никакой. На мой взгляд гибкость EAV схемы - миф, подходящий только для новой разработки, когда действительно правила меняются на ходу, данных мало, пользователи послушные. Но для таких условий и DDL легко решает все задачи. Как говорится мнение мое, не обязательно правильное. Справедливости ради скажу, что имелся опыт использования "дополнительных определяемых пользователем полей" - EAV типа, когда пользователи имели возможность вносить и дофильтровывать инфу сразу, а не когда разработчик озаботился внести это изменение, новая версия протестирована, процесс миграции отлажен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 18:11 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
SERG1257На мой взгляд гибкость EAV схемы - миф, подходящий только для новой разработки, когда действительно правила меняются на ходу, данных мало, пользователи послушные. Я пришел к такому же мнению. Т.е. гибкость-то её сама по себе - не миф, но за неё приходится платить. Даже тогда, когда гибкость не нужна. SERG1257Справедливости ради скажу, что имелся опыт использования "дополнительных определяемых пользователем полей" - EAV типа, когда пользователи имели возможность вносить и дофильтровывать инфу сразу, а не когда разработчик озаботился внести это изменение, новая версия протестирована, процесс миграции отлажен. У нас другая ситуация - пользователи не будут ничего настраивать, т.к. введение новой категории в нашем случае означает и введение специфической бизнес-логики. При этом возможность работы с каждой категорией будет отдельно приобретаться пользователем. Для наглядности - предположим, 1-я категория - это необработанные алмазы, затем пользователь хочет автоматизировать еще и их движение в процессе обработки, при этом ему добавляются еще 2 категории - полуфабрикаты бриллиантов и готовые бриллианты. Так что, сами понимаете, введением пользователем дополнительных полей не обойтись. Почему я и сказал в самом начале - категории предопределены. Почему-то некоторые не захотели в это поверить. Казалось бы, я лучше знаю, однако ж... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 09:16 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
Так что, сами понимаете, введением пользователем дополнительных полей не обойтись.Это почему же ? Это "тип товара" в карточке товара. В завис. от значения этого поля можно делать разные действия. Параметры у них разные ? Ну дык сделать в ЕАВ параметры, зависящие от поля "тип товара". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 10:40 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
LSVЭто почему же ? Потому что, например, введение категории "Полуфабрикаты" требует введение производственного контура в параллель к контуру движения МЦ. Иначе юзеру неинтересно будет, т.к. полуфабрикаты не просто перемещаются по местам хранения, но еще и участвуют в "производственных отношениях", т.к. перемещение полуфабриката происходит в рамках наряда на обработку - это не только движение МЦ. LSVЭто "тип товара" в карточке товара. В завис. от значения этого поля можно делать разные действия. Типы-то имеются в виду предопределенные, верно? О то ж! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 10:52 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
LSVЕсть набор функций/процедур, делающих выборки простыми и удобными. А можно полюбопытствовать, как у вас это реализовано? Через динамический sql, или еще как-то? Если через динамический sql, то где генерируется запрос - на клиенте, на сервере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 11:06 |
|
||
|
одновременный учет МЦ разных категорий
|
|||
|---|---|---|---|
|
#18+
GlybaLSVЕсть набор функций/процедур, делающих выборки простыми и удобными. А можно полюбопытствовать, как у вас это реализовано? Через динамический sql, или еще как-то? Если через динамический sql, то где генерируется запрос - на клиенте, на сервере?Нет. Есть набор функций и ХП (т-sql). Весь мой ЕАВ это аж три таблицы. Если упрощенно, то: * древовидный общий справочник всех доп.атрибутов * таблица хранения значений: IDдокументa-IDатрибута-Значение * таблица хранения значений: IDдокументa-IDатрибута-НаДату-Значение последняя - для хранения логов/истории и атрибутов, зависящих от времени. Их обслуживает статичный SQL. Причем простой. Атрибуты простые, т.е. не составные, хотя можно долепить сложносоставные (типо: Категория ХХХ, утвержденная в YYYY, на основании QQQ и при участии ZZZ). Схема позволяет, но неприятно усложнится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2014, 16:34 |
|
||
|
|

start [/forum/moderation_log.php?user_name=nistelroi]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
8ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 688ms |
| total: | 883ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...