powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / EAV - это выворачивание реляционной модели наизнанку.
25 сообщений из 136, страница 1 из 6
EAV - это выворачивание реляционной модели наизнанку.
    #37149457
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я - согласен с озвученной мыслью

из своей практики - сталкивался один раз, не зная еще как это называется
была бы возможность избежать, я бы оной воспользовался
сейчас работаю с системой, где БД построена по принципу EAV
напарник-начальник - чистый прог "этой системы", ничего другого не видел

киньте кто сцилкой на доку по этому поводу, EAV & реляционная модель
либо просто на вики-определение-формулировку

можно аргУментами как за, так и против
можно - сцилками на холивары

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

поиском в форуме по ключевому слову EAV можно отрыть не один топик.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37150318
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Практически удобно и выгодно использовать еавешные подходы в презентационным слое.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37150547
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chop
EAV используется в системах- конструкторах, в которых структуру БД определяет конечный пользователь.
В этом случае все, что он придумает, ложится в фиксированную структуру РСУБД.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37151389
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мусорная куча в которой только прикладная программа и разберется.
Ссылочной целостности нет, уникальность не поддерживается, DML гораздо сложнее чем select update delete, и гораздо медленнее.
А в остальном все хорошо. Патч с новой фунциональностью накладывается только на программу, базу менять не надо (была свалка свалкой и останется).

> киньте кто сцилкой на доку по этому поводу, EAV & реляционная модель
Найдите в сети книжку SQL Antipatterns: Avoiding the Pitfalls of Database Programming Автор: Bill Karwin
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37151486
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

ybabuf ns yt gjybvftim d vjltkz[
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37154758
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ссылочной целостности нет, уникальность не поддерживаетсяЭто решаемо, если вставка делается через единый механизм по единым правилам.
Назовите тиражную систему, где используется ссылочная целостность и проверка на уникальность (на стороне СУБД).

зы: Мы то с вами знаем, что в сложной системе от СЦ и проверки на уникальность на стороне СУБД крайне мало пользы. :)
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37156257
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНазовите тиражную систему, где используется ссылочная целостность и проверка на уникальность (на стороне СУБД)OEBS
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37156511
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVзы: Мы то с вами знаем, что в сложной системе от СЦ и проверки на уникальность на стороне СУБД крайне мало пользы. :)
ACID еще можно на стороне аппсервера поддерживать....
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37156556
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV зы: Мы то с вами знаем, что в сложной системе от СЦ и проверки на уникальность на стороне СУБД крайне мало пользы. :) От ремней безопасности тоже мало пользы, когда все хорошо.
locky ACID еще можно на стороне аппсервера поддерживать.Я ничего не имею против заплат, соплей, залепук, но предпочел бы обходится без них. Особенно в новом проекте.
Имеем некую функциональность, на которую потрачено куча человеко-часов чтобы сделать и отладить, и куча баксов на лицензии и от которой отказаться мотивируя тем что тиражные системы этим не пользуются...
Правое ухо МОЖНО чесать левой рукой, но правой все же лучше.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37156585
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

вот щаз я потерялася :(
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37157003
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-LSVНазовите тиражную систему, где используется ссылочная целостность и проверка на уникальность (на стороне СУБД)OEBSРедчайший случай. Потому, что единый вендор и СУБД и приложения.
А еще ?

От ремней безопасности тоже мало пользы, когда все хорошо.Речь не о том. Нужен единый механизм контроля целостности, которая намного шире и сложнее, чем СЦ в СУБД. Поэтому в СЦ по большому счету нет нужны. Она скоре мешает, чем помогает. К тому же она заметно тормозит.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37157020
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVК тому же она заметно тормозит.
когда-то замерял. Отклонения были в пределах погрешности измерения.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37157024
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV-2-пропущено...
OEBSРедчайший случай. Потому, что единый вендор и СУБД и приложения.
А еще ?

Navision (по желанию)
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37157949
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVРечь не о том. Нужен единый механизм контроля целостности, которая намного шире и сложнее, чем СЦ в СУБД.Чисто из любопытства опишите этот механизм.
На мой взгляд, камнем преткновения является логическое удаление в каком-нибудь мелком (не важном для бизнеса) справочнике. Например не хочет начальство видеть в списке цветов красный. Но и прямо удалить нельзя - есть дочерние записи где-нибудь в истории, которых тронешь и будешь иметь дело с еще одним начальником. Посылать заявку разработчику, тестировать полученный патч ради этого красного дорого и долго, стало быть проще базу изнасиловать (запись вроде и есть, но ее не видно), а проблемы, может и не будет их или будут уже после моего ухода.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37159039
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
//когда-то замерял. Отклонения были в пределах погрешности измерения.

Я тоже. Разница действительно была, если мерять на больших таблицах.

//Navision (по желанию)
Навижн ? Он совершенно не использует никаких механизмов в СУБД (хотя видел пару аццких триггеров). Тем более СЦ. Там вся разработка - исключительно в C/AL. И кстати в базовой конфигурации(!) я запросто грохал из НАВа ключевую запись важного справочника.
Просто элементарно не было обработчика для проверки допустимости удаления. :)

//Чисто из любопытства опишите этот механизм.

У нас это отдельная ХП с кучей проверок. Обычно вызывается перед коммитом. Если неуспех, то роллбек. Кое-где ок. 30 проверок.
Все документы и справочники имеют подобные ХП. ХП генерит унифицированный в приложении и понятный юзеру вывод ошибки.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37159259
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot LSV]//когда-то замерял. Отклонения были в пределах погрешности измерения.

Я тоже. Разница действительно была, если мерять на больших таблицах.

//Navision (по желанию)
Навижн ? Он совершенно не использует никаких механизмов в СУБД (хотя видел пару аццких триггеров). Тем более СЦ. Там вся разработка - исключительно в C/AL. И кстати в базовой конфигурации(!) я запросто грохал из НАВа ключевую запись важного справочника.
Просто элементарно не было обработчика для проверки допустимости удаления. :)

//Чисто из любопытства опишите этот механизм.

LSVУ нас это отдельная ХП с кучей проверок.


Но ХП на "строне СУБД", а Вы вроде были против "стороны СУБД".

На больших таблицах куча проверок быстрей декларативных проверок СУБД?
Как, например, она прверит "уникальность" быстрей СУБД? Разве не выполнит запрос на поиск дублей?

С точки зрения МД ХП разве не проигрывает в выразительности декларативным?

Не говоря уже о затраах на разработку и сопровождение. А ить там должны быть еще и шибки.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37159627
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoНо ХП на "строне СУБД", а Вы вроде были против "стороны СУБД".

На больших таблицах куча проверок быстрей декларативных проверок СУБД?
Как, например, она прверит "уникальность" быстрей СУБД? Разве не выполнит запрос на поиск дублей?

С точки зрения МД ХП разве не проигрывает в выразительности декларативным?

Не говоря уже о затраах на разработку и сопровождение. А ить там должны быть еще и шибки.Я не против стороны СУБД. Я против СЦ средствами СУБД для сложных систем.
Куча проверок удобнее. Чем вам поможет глюк при попытке удаления из таблицы ? Обрабатывать на ошибку каждый оператор ?
Хорошо написанная ХП вполне выразительна и понятна. Все видим в одном месте.

Ошибки действительно могут быть. В т.ч. опасные. Дык они где угодно могут быть. Даже в настройках СЦ.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37159787
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЯ не против стороны СУБД. Я против СЦ средствами СУБД для сложных систем.
Тада получается на стороне СУБД, но не средствами СУБД? Но ведь ХП это же средства СУБД?

LSVКуча проверок удобнее. Чем вам поможет глюк при попытке удаления из таблицы ?
.
Глюк - это срабатывание ОЦ? Поможет тем, что не даст удалить, если удаление нарушает ОЦ. Не позволит нарушить целостность данных.

LSVХорошо написанная ХП вполне выразительна и понятна. Все видим в одном месте.

Мы видим код. А с декларативными ОЦ мы видим МД. И например, многие тулсы позволяют нарисовать диаграмму на основе этих описаний в БД. Это более понятно. Ну и есть разница объявить декларация или написать код?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37159893
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVvadiminfoНо ХП на "строне СУБД", а Вы вроде были против "стороны СУБД".

На больших таблицах куча проверок быстрей декларативных проверок СУБД?
Как, например, она прверит "уникальность" быстрей СУБД? Разве не выполнит запрос на поиск дублей?

С точки зрения МД ХП разве не проигрывает в выразительности декларативным?

Не говоря уже о затраах на разработку и сопровождение. А ить там должны быть еще и шибки.Я не против стороны СУБД. Я против СЦ средствами СУБД для сложных систем.
Куча проверок удобнее. Чем вам поможет глюк при попытке удаления из таблицы ? Обрабатывать на ошибку каждый оператор ?
Хорошо написанная ХП вполне выразительна и понятна. Все видим в одном месте.

Ошибки действительно могут быть. В т.ч. опасные. Дык они где угодно могут быть. Даже в настройках СЦ.
DRI есть последний бастион защиты. И пренебрегать им - неразумно.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37160003
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoНу и есть разница объявить декларация или написать код?Разница есть.
Как узнать в некотором фрагменте кода, что там может сработать некая декларация ? Никак. Нужно руцями полесть в тулзу и зачитать наличие или отсутствие таковой. И так каждый раз.
Кстати этим же неудобны триггеры. Их нужно смотреть в другом месте.
А уж накатывать триггеры и СЦ на работающую продакшн систему - одно удовольствие. Дедлок на раз... :)

зы: Вот только не надо тут про неправильность накатывания на продакшн по горячему. Ок ?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37160022
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVvadiminfoНу и есть разница объявить декларация или написать код?Разница есть.
Как узнать в некотором фрагменте кода, что там может сработать некая декларация ? Никак. Нужно руцями полесть в тулзу и зачитать наличие или отсутствие таковой. И так каждый раз.
Кстати этим же неудобны триггеры. Их нужно смотреть в другом месте.
А уж накатывать триггеры и СЦ на работающую продакшн систему - одно удовольствие. Дедлок на раз... :)

зы: Вот только не надо тут про неправильность накатывания на продакшн по горячему. Ок ?
Как узнать при написании новой процедуры, что существует некая "логическая СЦ" и правильно её учесть?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37160108
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyКак узнать при написании новой процедуры, что существует некая "логическая СЦ" и правильно её учесть?Точно также, как для вставки СЦ в СУБД.
Тот, кто пишет ХП должен знать, что пишет. И нужный (справочный) код должен быть рядом.
У нас все в скриптах. Более 800 файлов. Пи этом однозначно ясно где и что искать. На каждый модуль своя папка, а там на каждую по смыслу группу ХП отдельный файл. Например ХХХХcheck, XXXXSpec, XXXXfunc, ХХХReports и т.д.
А все это в стартиме за 3 последних года.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37160125
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV... нужный (справочный) код должен быть рядом.
У нас все в скриптах. Более 800 файлов. Пи этом однозначно ясно где и что искать. На каждый модуль своя папка, а там на каждую по смыслу группу ХП отдельный файл.схему связей как-то сгенерить/посмотреть можно?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37160132
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV,

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


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