|
|
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
я - согласен с озвученной мыслью из своей практики - сталкивался один раз, не зная еще как это называется была бы возможность избежать, я бы оной воспользовался сейчас работаю с системой, где БД построена по принципу EAV напарник-начальник - чистый прог "этой системы", ничего другого не видел киньте кто сцилкой на доку по этому поводу, EAV & реляционная модель либо просто на вики-определение-формулировку можно аргУментами как за, так и против можно - сцилками на холивары я дам ему почитать эту тему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2011, 16:31 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
все хорошо в меру и при реальной необходимости. типичный пример - каталог товаров с заранее неизвестными характеристиками товаров. не надо противопоставлять EAV и нормальную модель, используете EAV когда это действительно необходимо. Ничто не мешает также смешивать нормальную модель и EAV. поиском в форуме по ключевому слову EAV можно отрыть не один топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2011, 22:17 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
Практически удобно и выгодно использовать еавешные подходы в презентационным слое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 09:13 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
Chop EAV используется в системах- конструкторах, в которых структуру БД определяет конечный пользователь. В этом случае все, что он придумает, ложится в фиксированную структуру РСУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 10:56 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
Мусорная куча в которой только прикладная программа и разберется. Ссылочной целостности нет, уникальность не поддерживается, DML гораздо сложнее чем select update delete, и гораздо медленнее. А в остальном все хорошо. Патч с новой фунциональностью накладывается только на программу, базу менять не надо (была свалка свалкой и останется). > киньте кто сцилкой на доку по этому поводу, EAV & реляционная модель Найдите в сети книжку SQL Antipatterns: Avoiding the Pitfalls of Database Programming Автор: Bill Karwin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 18:41 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
SERG1257, ybabuf ns yt gjybvftim d vjltkz[ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2011, 20:19 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
Ссылочной целостности нет, уникальность не поддерживаетсяЭто решаемо, если вставка делается через единый механизм по единым правилам. Назовите тиражную систему, где используется ссылочная целостность и проверка на уникальность (на стороне СУБД). зы: Мы то с вами знаем, что в сложной системе от СЦ и проверки на уникальность на стороне СУБД крайне мало пользы. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2011, 10:32 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSVНазовите тиражную систему, где используется ссылочная целостность и проверка на уникальность (на стороне СУБД)OEBS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2011, 19:21 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSVзы: Мы то с вами знаем, что в сложной системе от СЦ и проверки на уникальность на стороне СУБД крайне мало пользы. :) ACID еще можно на стороне аппсервера поддерживать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2011, 23:39 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSV зы: Мы то с вами знаем, что в сложной системе от СЦ и проверки на уникальность на стороне СУБД крайне мало пользы. :) От ремней безопасности тоже мало пользы, когда все хорошо. locky ACID еще можно на стороне аппсервера поддерживать.Я ничего не имею против заплат, соплей, залепук, но предпочел бы обходится без них. Особенно в новом проекте. Имеем некую функциональность, на которую потрачено куча человеко-часов чтобы сделать и отладить, и куча баксов на лицензии и от которой отказаться мотивируя тем что тиражные системы этим не пользуются... Правое ухо МОЖНО чесать левой рукой, но правой все же лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 00:37 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
SERG1257, вот щаз я потерялася :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 01:55 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
-2-LSVНазовите тиражную систему, где используется ссылочная целостность и проверка на уникальность (на стороне СУБД)OEBSРедчайший случай. Потому, что единый вендор и СУБД и приложения. А еще ? От ремней безопасности тоже мало пользы, когда все хорошо.Речь не о том. Нужен единый механизм контроля целостности, которая намного шире и сложнее, чем СЦ в СУБД. Поэтому в СЦ по большому счету нет нужны. Она скоре мешает, чем помогает. К тому же она заметно тормозит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 11:17 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSVК тому же она заметно тормозит. когда-то замерял. Отклонения были в пределах погрешности измерения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 11:24 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSV-2-пропущено... OEBSРедчайший случай. Потому, что единый вендор и СУБД и приложения. А еще ? Navision (по желанию) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 11:24 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSVРечь не о том. Нужен единый механизм контроля целостности, которая намного шире и сложнее, чем СЦ в СУБД.Чисто из любопытства опишите этот механизм. На мой взгляд, камнем преткновения является логическое удаление в каком-нибудь мелком (не важном для бизнеса) справочнике. Например не хочет начальство видеть в списке цветов красный. Но и прямо удалить нельзя - есть дочерние записи где-нибудь в истории, которых тронешь и будешь иметь дело с еще одним начальником. Посылать заявку разработчику, тестировать полученный патч ради этого красного дорого и долго, стало быть проще базу изнасиловать (запись вроде и есть, но ее не видно), а проблемы, может и не будет их или будут уже после моего ухода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2011, 16:29 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
//когда-то замерял. Отклонения были в пределах погрешности измерения. Я тоже. Разница действительно была, если мерять на больших таблицах. //Navision (по желанию) Навижн ? Он совершенно не использует никаких механизмов в СУБД (хотя видел пару аццких триггеров). Тем более СЦ. Там вся разработка - исключительно в C/AL. И кстати в базовой конфигурации(!) я запросто грохал из НАВа ключевую запись важного справочника. Просто элементарно не было обработчика для проверки допустимости удаления. :) //Чисто из любопытства опишите этот механизм. У нас это отдельная ХП с кучей проверок. Обычно вызывается перед коммитом. Если неуспех, то роллбек. Кое-где ок. 30 проверок. Все документы и справочники имеют подобные ХП. ХП генерит унифицированный в приложении и понятный юзеру вывод ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 10:29 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
[quot LSV]//когда-то замерял. Отклонения были в пределах погрешности измерения. Я тоже. Разница действительно была, если мерять на больших таблицах. //Navision (по желанию) Навижн ? Он совершенно не использует никаких механизмов в СУБД (хотя видел пару аццких триггеров). Тем более СЦ. Там вся разработка - исключительно в C/AL. И кстати в базовой конфигурации(!) я запросто грохал из НАВа ключевую запись важного справочника. Просто элементарно не было обработчика для проверки допустимости удаления. :) //Чисто из любопытства опишите этот механизм. LSVУ нас это отдельная ХП с кучей проверок. Но ХП на "строне СУБД", а Вы вроде были против "стороны СУБД". На больших таблицах куча проверок быстрей декларативных проверок СУБД? Как, например, она прверит "уникальность" быстрей СУБД? Разве не выполнит запрос на поиск дублей? С точки зрения МД ХП разве не проигрывает в выразительности декларативным? Не говоря уже о затраах на разработку и сопровождение. А ить там должны быть еще и шибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 11:44 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
vadiminfoНо ХП на "строне СУБД", а Вы вроде были против "стороны СУБД". На больших таблицах куча проверок быстрей декларативных проверок СУБД? Как, например, она прверит "уникальность" быстрей СУБД? Разве не выполнит запрос на поиск дублей? С точки зрения МД ХП разве не проигрывает в выразительности декларативным? Не говоря уже о затраах на разработку и сопровождение. А ить там должны быть еще и шибки.Я не против стороны СУБД. Я против СЦ средствами СУБД для сложных систем. Куча проверок удобнее. Чем вам поможет глюк при попытке удаления из таблицы ? Обрабатывать на ошибку каждый оператор ? Хорошо написанная ХП вполне выразительна и понятна. Все видим в одном месте. Ошибки действительно могут быть. В т.ч. опасные. Дык они где угодно могут быть. Даже в настройках СЦ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 14:00 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSVЯ не против стороны СУБД. Я против СЦ средствами СУБД для сложных систем. Тада получается на стороне СУБД, но не средствами СУБД? Но ведь ХП это же средства СУБД? LSVКуча проверок удобнее. Чем вам поможет глюк при попытке удаления из таблицы ? . Глюк - это срабатывание ОЦ? Поможет тем, что не даст удалить, если удаление нарушает ОЦ. Не позволит нарушить целостность данных. LSVХорошо написанная ХП вполне выразительна и понятна. Все видим в одном месте. Мы видим код. А с декларативными ОЦ мы видим МД. И например, многие тулсы позволяют нарисовать диаграмму на основе этих описаний в БД. Это более понятно. Ну и есть разница объявить декларация или написать код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 14:59 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSVvadiminfoНо ХП на "строне СУБД", а Вы вроде были против "стороны СУБД". На больших таблицах куча проверок быстрей декларативных проверок СУБД? Как, например, она прверит "уникальность" быстрей СУБД? Разве не выполнит запрос на поиск дублей? С точки зрения МД ХП разве не проигрывает в выразительности декларативным? Не говоря уже о затраах на разработку и сопровождение. А ить там должны быть еще и шибки.Я не против стороны СУБД. Я против СЦ средствами СУБД для сложных систем. Куча проверок удобнее. Чем вам поможет глюк при попытке удаления из таблицы ? Обрабатывать на ошибку каждый оператор ? Хорошо написанная ХП вполне выразительна и понятна. Все видим в одном месте. Ошибки действительно могут быть. В т.ч. опасные. Дык они где угодно могут быть. Даже в настройках СЦ. DRI есть последний бастион защиты. И пренебрегать им - неразумно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 15:25 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
vadiminfoНу и есть разница объявить декларация или написать код?Разница есть. Как узнать в некотором фрагменте кода, что там может сработать некая декларация ? Никак. Нужно руцями полесть в тулзу и зачитать наличие или отсутствие таковой. И так каждый раз. Кстати этим же неудобны триггеры. Их нужно смотреть в другом месте. А уж накатывать триггеры и СЦ на работающую продакшн систему - одно удовольствие. Дедлок на раз... :) зы: Вот только не надо тут про неправильность накатывания на продакшн по горячему. Ок ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:06 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSVvadiminfoНу и есть разница объявить декларация или написать код?Разница есть. Как узнать в некотором фрагменте кода, что там может сработать некая декларация ? Никак. Нужно руцями полесть в тулзу и зачитать наличие или отсутствие таковой. И так каждый раз. Кстати этим же неудобны триггеры. Их нужно смотреть в другом месте. А уж накатывать триггеры и СЦ на работающую продакшн систему - одно удовольствие. Дедлок на раз... :) зы: Вот только не надо тут про неправильность накатывания на продакшн по горячему. Ок ? Как узнать при написании новой процедуры, что существует некая "логическая СЦ" и правильно её учесть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:13 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
lockyКак узнать при написании новой процедуры, что существует некая "логическая СЦ" и правильно её учесть?Точно также, как для вставки СЦ в СУБД. Тот, кто пишет ХП должен знать, что пишет. И нужный (справочный) код должен быть рядом. У нас все в скриптах. Более 800 файлов. Пи этом однозначно ясно где и что искать. На каждый модуль своя папка, а там на каждую по смыслу группу ХП отдельный файл. Например ХХХХcheck, XXXXSpec, XXXXfunc, ХХХReports и т.д. А все это в стартиме за 3 последних года. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:46 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSV... нужный (справочный) код должен быть рядом. У нас все в скриптах. Более 800 файлов. Пи этом однозначно ясно где и что искать. На каждый модуль своя папка, а там на каждую по смыслу группу ХП отдельный файл.схему связей как-то сгенерить/посмотреть можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:53 |
|
||
|
EAV - это выворачивание реляционной модели наизнанку.
|
|||
|---|---|---|---|
|
#18+
LSV, спорить не хочу, но твоя позиция :( в лоб (вручную) СЦ оже не айс модель надо определить в промежуточном слое (метамодель) СЦ - сгенерировать, ХП (доступ) - сгенерировать. без СЦ никак ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:55 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37150547&tid=1541471]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 393ms |

| 0 / 0 |
