powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / EAV - это выворачивание реляционной модели наизнанку.
136 сообщений из 136, показаны все 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
EAV - это выворачивание реляционной модели наизнанку.
    #37160139
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVlockyКак узнать при написании новой процедуры, что существует некая "логическая СЦ" и правильно её учесть?Точно также, как для вставки СЦ в СУБД.
Тот, кто пишет ХП должен знать, что пишет. И нужный (справочный) код должен быть рядом.
У нас все в скриптах. Более 800 файлов. Пи этом однозначно ясно где и что искать. На каждый модуль своя папка, а там на каждую по смыслу группу ХП отдельный файл. Например ХХХХcheck, XXXXSpec, XXXXfunc, ХХХReports и т.д.
А все это в стартиме за 3 последних года.
ну надо же! "должен знать!"
как насчет "Как узнать в некотором фрагменте кода, что там может сработать некая декларация ?" в виде "как узнать в некотором фрагменте кода, что там должна сработать некая проверка"?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37160294
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVРазница есть.
Как узнать в некотором фрагменте кода, что там может сработать некая декларация ?
Никак. Нужно руцями полесть в тулзу и зачитать наличие или отсутствие таковой. И так каждый раз.

Декларация - противопоставляется коду: она не в фрагменте кода.
В частности, она в словаре БД. Т.е. с помощью декларативных же запросов можно посмотреть все ОЦ. И это сделать может тулса по проектированию БД, и нарисовать диаограмму. Например, ERwin.




LSVКстати этим же неудобны триггеры. Их нужно смотреть в другом месте.

Тригерра это ХП. И место просмотра играет, скорее всего, меньшую роль, чем что смотреть: код или объявление.

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

у Вас проверяющую ХП вызывает клиент?Нет. Ее вызов вставлен в другую ХП. Вся работа происходит только через ХП. Поэтому, дёргая ХП, невозможно вывести систему из целостности.

Замена ХП на лету безболезненна. В отличие от триггеров и установки СЦ.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37160914
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVlocky"как узнать в некотором фрагменте кода, что там должна сработать некая проверка"?Обычно места для проверок заранее известны, т.е. известно где искать проверку.
А вот в случае триггера или СЦ сначала нужно проверить есть ли они в таблице и что делают. Причем не в одной таблице а возможно в нескольких.

Офигеть, дайте две.
Значит, в случае "ручных проверок" знание о "местах, где их нужно делать" мы получаем "сакральным, внечувственным путём" - "они заранее известны".
А в случае DRI - "неизвестно где и что должно сработать"?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37160915
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVНет. Ее вызов вставлен в другую ХП. Вся работа происходит только через ХП. Поэтому, дёргая ХП, невозможно вывести систему из целостности.

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

Вариант на триггерах и СЦ рассматривался, но оказался жутко неудобным в поддержке и наглядности.

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

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

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

другой вопрос - взаимодействие, то есть выборка данных и дальнейшее манипулирование

в Java используют Hibernate, в NET - NHibernate.. отсюда вопрос - у нас 200 справочников, как с ними быть ? 200 классов объектов создавать в java ?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37161084
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не почему то кажется, что ограничения бизнес-процессов и ограничения СЦ БД - несколько разные вещи...
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37161101
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chopне почему то кажется, что ограничения бизнес-процессов и ограничения СЦ БД - несколько разные вещи...Разные.
Но мы обсуждаем применение СЦ в автоматизации. В частности для БП.
Я именно это имел ввиду, упоминая сложные проверки для реальной жизни.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37161210
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVChopне почему то кажется, что ограничения бизнес-процессов и ограничения СЦ БД - несколько разные вещи...Разные.
Но мы обсуждаем применение СЦ в автоматизации. В частности для БП.
Я именно это имел ввиду, упоминая сложные проверки для реальной жизни.
чет не понимаю, если мы обсуждаем СЦ и ты согласен с мнением "...."
то при чем тут примеры из бизнес-процессов?

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

Ну а кто вызовет эту "другую ХП"? Я намекаю, что это ничего не меняет та или другая но все равно ХП. Ее кто-то должен вызвать. Раз не триггер ее вызывает, то кто?

Кроме того, Вы как-то не прояснили вопрос с декларативными ОЦ. Т.е. которые моно просто объявить? Не в каком ни в коде.
Если ОЦ не удается навязать декларативно, тогда триггер.
Но целосность отношения (уникальность), СЦ и ограничения на значения можно навязать декларативно.


Есть, возможно, ситуации када сложные БП не совсем типа ОЦ. Например, это разные правила для разного персонала. Ну тада тока ХП или вообще на стороне сервера приложений или клиента.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37161518
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chop, посмотри на реализацию БД в MS CRM 4. Там применяется ссылочная целостность на уровне СУБД, настройки конкретного
инстанса вместо EAV реализованы на уровне DDL (модификация структур таблиц, индексов и т.д. сложными ХП, дергаемыми из
сервера приложений).
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37163030
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а кто вызовет эту "другую ХП"? Ту "другую" вызывает приложение.
Я намекаю, что это ничего не меняет та или другая но все равно ХПНамёк не понят. Что не меняет ?
Проверяющая ХП является единственной точкой всех проверок любой сложности в этом документе/справочнике.
Ее можно удобно вызвать не только в модифицирующей процедуре. Ее можно вызвать "просто так", допустим с целью проверить документ, если было сделано к-л действие в другом д-те, кот. может как-то повлиять на целостность этого.
Разумеется это в целях диагностики и отладки.
Процедура умеет передавать не только ошибки, но и всякие варнинги и инф. сообщения пользователю.

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

Как раз наоборот, ничего не меняет: как устроена ХП не имеет значения. Вызывается из клиента: детали ХП ниче не меняют.
У Вас ОЦ из приложения контролируются.

А доступ к БД возможен, например, с административных клиентов, которые не вызовут этих ХП. Тогда как триггеры и декларативные ОЦ сработают.

LSVПроверяющая ХП является единственной точкой всех проверок любой сложности в этом документе/справочнике.

Показать все деклараттивные ОЦ моно одним запросами, что луче всяких точек и кода.
Да и триггера тока вызывают ХП. Моно опять разрабатывать чтобы удобно смотреть было.


LSVРеализовать такое на триггерах и констрайнтах может и возможно, но это месиво из кучи трудноуправляемого кода и настроек в разных местах.

Наверное, Вы констрайнтами называете ОЦ, которые моно объявить. Но на самом деле констренты это ОЦ. Декларативные, триггерные и те что Вы пытаетесь реализовыавть из приложения.
В любом случае Вы отказываетесь от достижений технологий БД.
Там МД - фундамент, а Вы ОЦ выносите на уровеннь приложения, хотя и храните код в БД. Но поскоку без приложениях ОЦ нет, то к МД их не отненсти. Возможно, для встроенных БД это и ниче, но када клиентов много это шанг назад к файловым системам (то что было до БД для таких задач).

Буржуа создали СУБД, способные поддерживать важнейшие для РМД ОЦ декларативно, и триггера для остальных, а Вы это не юзаете. Т.е. не используете важных возможностей СУБД. Зато пишите свой код для этого же, т.е. конкурируете в этом с производитенлями СУБД, а не студентами их юзающими. Т.е. даете этим студентам фору, поскоку превзойти производителей СУБД в этом все еще проблематично.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37163221
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Буржуа создали СУБД, способные поддерживать важнейшие для РМД ОЦ декларативно, и триггера для остальных, а Вы это не юзаете.Каждый юзает, то что ему больше подходит.
Подавляющее большинство ERP-систем использует БД как свалку таблиц (за исключенем м.б. ОЕБС).
Никаких констрайнтов и триггеров.
Сначала мне казалось это глупым....но со временем я понял, что это было сделано не спроста и на это были весомые аргументы.

У любого решения есть недостатки. Приходится выбирать...
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37163469
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04.03.2011 16:31, Chop wrote:

> я - согласен с озвученной мыслью

Я - нет.
EAV реализует метамодель данных. При этом делает он средствами
обычной реляционной модели, никуда за её рамки не выходя.
Поэтому ничуть ничего не выворачивается. Это просто другой подход.
Ты работаешь не с данными, а с метаданными.

Можно скажем в С++ (или Java) точно так же описывать данные в виде
классов и их членов, можно составить списки атрибутов и значений.

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

Поищи волшебное ключевое слово "Тенцер".

Преимущество в EAV одно -- можно динамически создавать новые атрибуты
сущностей. Это очень мощное преимущество и собственно единственная
причина EAV применять. Если это нужно, то без EAV не обойтись.

Недостаток -- большая сложность работы с данными.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37163730
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

+500
EAV - почти идеальное средство для постоянно развивающихся систем, особенно в продакшене 7/24.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37163843
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv При этом делает он средствами
обычной реляционной модели, никуда за её рамки не выходя.
Поэтому ничуть ничего не выворачивается.

Но это как раз можно увидеть выворачивание: средства от другой (РМД) МД прикручены к EAV.
Ожидались свои средства.

MasterZiv
Преимущество в EAV одно -- можно динамически создавать новые атрибуты
сущностей.

Возможно, за счет того, что эти самые атрибуты по сути превращены (вывернуты) в данные.
Ну а данные в РМД можно менять.
Это преимущество слабоструктурированных МД перед сильно структурированными.
По взрослому это пытаются решить с помощью соотвтующего типа МД, например, XML.
Ну типа там и средства свои.

MasterZivНедостаток -- большая сложность работы с данными.

Ну правильно, средства РМД (манипулирование, ОЦ ) расчитаны на соответсвтие струтуры МД структуре предметной области.
А струкура EAV (таблицы и атрибуты) далеки от этого в общем случае. Имена атрибутов из EAV в SQL не подставишь. Декларативные ОЦ не навяжешь.

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

А собственно, кто претендует ?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37165195
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVна идеальное EAV вряд ли претендует. Не претендует. Идеалов пока не существует.

А собственно, кто претендует ?
Ну извините, по сранению не тока с РМД, ООМД, ХМД, но даже там с иерархическими образца 1970 года, она, скорей всего, смотрица в заду. Она, скорей, как вынужденная затычка для РМД в некоторых ситуациях имеет смысл.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37165217
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoНу извините, по сранению не тока с РМД, ООМД, ХМД, но даже там с иерархическими образца 1970 года, она, скорей всего, смотрица в заду. Она, скорей, как вынужденная затычка для РМД в некоторых ситуациях имеет смысл.1. Что такое ХМД ?
2. А сами ООМД разве не в заду (если мы обсуждаем СУБД) ?
Только не надо тут про "успехи" CACHE. Ок ?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37165290
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV1. Что такое ХМД ?
Опечатка. Имелось в виду XML (буквы Д и L на одной клавише, вот и ошибся)

LSV2. А сами ООМД разве не в заду (если мы обсуждаем СУБД) ?

Ну даже если ООМД в заду, то EAV в значительно большем. Так или иначе ООСУБД есть: Версант, ГемСтоун или типа того. Да и всякие стандарты и проч. А EAV СУБД хде? РСУБД в EAV не переименуется из-за того что там кто-то налабает три таблы и назовет это EAV. Да и сами же видите, что средства от РМД. Вы их и не юзаете: ХП пишете вместо декларативных ОЦ. Ну что это за МД?
В толстых книгах про EAV тоже что-то не попадалось, в отличии от перечисленных.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37167012
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так или иначе ООСУБД есть: Версант, ГемСтоун или типа того.Чихать на них. Бесперспективная экзотика. Не то, что не сталкивался, я даже не слышал. И нет желания.
Отомрут сами за ненадобностью.
А EAV СУБД хде?Странный вопрос. А зачем для этого отдельные СУБД ? EAV это методика. Не универсальная, но удобная для ряда задач.
Ниодна методика в чистом виде неприменима или неудобна. Всегда используется набор методик и приёмов.
ХП пишете вместо декларативных ОЦ.Думаю, не ошибусь, если предположу, что 80-90% прикладных решений не используют декларативную ОЦ. И на это есть много объективных причин.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37167040
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так или иначе ООСУБД есть: Версант, ГемСтоун или типа того.Чихать на них. Бесперспективная экзотика. Не то, что не сталкивался, я даже не слышал. И нет желания.
Отомрут сами за ненадобностью.
А EAV СУБД хде?Странный вопрос. А зачем для этого отдельные СУБД ? EAV это методика. Не универсальная, но удобная для ряда задач.
Ниодна методика в чистом виде неприменима или неудобна. Всегда используется набор методик и приёмов.
ХП пишете вместо декларативных ОЦ.Думаю, не ошибусь, если предположу, что 80-90% прикладных решений не используют декларативную ОЦ. И на это есть много объективных причин.
И не нужно тут тыкать в умные книги. Ок ? Это не более, чем теория или даже (подчас спорное) ИМХО автора. Сферические кони в вакууме. А жизнь сложнее.
Ради хохмы возьмите и приведите свою БД в полное соответствие с 3,4,5 НФ. И что получится ?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37167202
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot LSV]Чихать на них. Бесперспективная экзотика. Не то, что не сталкивался, я даже не слышал. И нет желания.
Отомрут сами за ненадобностью.
[quot ]
Ну Вы же не думаете в серьез, что такого рода аргументы не нуждаются в каких-то дополнительных подтверждениях, очищенных от эмоциональной составляющей?


[quot LSV]Странный вопрос. А зачем для этого отдельные СУБД ? EAV это методика. Не универсальная, но удобная для ряда задач.
Ниодна методика в чистом виде неприменима или неудобна. Всегда используется набор методик и приёмов.
[quot ]
Вопрос был связан с тем, что EAV это не просто методика, а МД. Если нет, НЕ МД, то тада ей тем более нечего делать рядом ООМД. Поскоку последняя МД.

LSVДумаю, не ошибусь, если предположу, что 80-90% прикладных решений не используют декларативную ОЦ. И на это есть много объективных причин.
И не нужно тут тыкать в умные книги. Ок ? Это не более, чем теория или даже (подчас спорное) ИМХО автора. Сферические кони в вакууме. А жизнь сложнее.
Ради хохмы возьмите и приведите свою БД в полное соответствие с 3,4,5 НФ. И что получится ?
Вы можете отказаться и от других достижений технологий БД. Например, от юзания самого СУБД, и говорить про тыканье в умные книги, тем кто их юзает. Сделали шаг: отказались от части важнейших возможностей, сделайте следующий откажитесь от всей СУБД. А эти книги не отрицают достоинств и систем без СУБД кстати, как впрочем и недостатков.
И куда тыкать? В выдумки вчерашних проггеров драйверов, пришедших сеня в БД?
Так я встречал, и тех что на ассемблере всю ИС хотели делать. Ну они системщики до этого были.
Не ради хохмы, но я четко контролирую в каких нормальных формах моя БД. И если какая-то нарушена, то я знаю все последствия. Однако, не помню чтобы БД не была в 3НФ. Я вообще при проектировании следую метологиям рекомендованным в умных книгах. Там этап оптимизации (куда входит и нормализация) схемы обязателен. Мне лишние риски не нужны. Мне не хохм.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37167773
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. И если какая-то нарушена, то я знаю все последствия. 2. Однако, не помню чтобы БД не была в 3НФ.1. Почему нарушаем ? Есть основания, не так ли ?
2. А 4, 5 НФ ? Неактуальны, скажете Вы. И будете правы.

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

Есть. Например, из-за приведения к нормальной форма Бойса Кодда может нельзя буит навязать деклративно некоторые ф зависимости.


LSV Так вот... для неиспользования некот. возможностей СУБД всегда есть "основания" и "неактуальность".
Проетировщик иногда оказывается перед непрятным выбором, к сожалению. Но нужны именно основания, чтобы отказваться от декларативных ОЦ или юзать "методику" EAV. При этом считать эти места в БД узкими. Или как бы заплпатками что ли.


LSV На всё есть целесообразность.
по сабжу: Железных правил нет. Есть рекомендации. И то, часть их них ИМХО-шные.
Вот целесообразность в том, что буржуа придумал методолгии и рекомендовал не от того, что ему делать нечего. А исключительно на основе выявления прничин значительного кол-ва не успешных проектов, и вынужденного поиска снижения риска таковых.
Иными словами, кажный проект имеет риски неудач в той или иной степени. Вот чтобы их снизить и приходится юзать рекомендации.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37168142
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот чтобы их снизить и приходится юзать рекомендации. Либо, наоборот, не юзать. Не так ли ? :)
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37168528
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЛибо, наоборот, не юзать. Не так ли ? :)
Ну, да. Это агрессивный типа такой подход к проектированию.
Есть и не заморачиваются ознакомлением с рекомендациями.
В результате бывает так, не только ХП вместо декларативных ОЦ, но и массивы в этих самых ХП вместо таблов в БД появляются. А то и в клиенте. Аномалии БД. И вообще выяснется, что в принципе нет возможности извлеч требуемую заказчиком инфу, не смотря на то что она как бы должна там быть (была в предшествующей системе).
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37169487
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVДумаю, не ошибусь, если предположу, что 80-90% прикладных решений не используют декларативную ОЦ. И на это есть много объективных причин.
Думаю, ошибаетесь. Проверка на клиенте нужна, но не всегда возможна. Все проверки по максимуму лежат на сервере. Везде, где работал, именно так и делали.
Триггеры, Уникальные ключи, Констрейнты - все это используется.
Часто стоит задача что-то изменить в БД в обход стандартной модели работы без использования клиента, а, например, скриптом. Клиентская проверка, в данном случае, идет лесом... А серверная проверка не даст нарушить целостность данных!
Наилучшее решением имхо - это комбинация клиентских и серверных проверок. Клиентские нужны, чтобы лишний раз не обращаться к серверу.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37169979
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteLSVДумаю, не ошибусь, если предположу, что 80-90% прикладных решений не используют декларативную ОЦ. И на это есть много объективных причин.
Думаю, ошибаетесь. "Мотивируй !" (с)

1С -нет.
Навижн - нет или очень ограниченно.
Акзапта - нет или очень ограниченно.
ЖДЕ - нет.
ОЕБС - да.
MS ReportServer - да.
Галактика - поверхностно поискал, не нашел.
StarTeam - поверхностно поискал, не нашел.
САП - скорее всего нет, точно не знаю. Там много рподуктов :)
MS CRM - у меня нет информации. :)

Все примеры в основном по МССКЛ. Не думаю, что их Оракловые версии(если они есть) выполнены по другому.

А теперь дай список из 10 популярных продуктов, где статистика наоборот. :)

Везде, где есть встроенная среда разработки (большинство в списке), я не встречал ОЦ на уровне БД. Поправьте меня.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37170333
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV"Мотивируй !" (с)Приведен список не "прикладных решений", а "платформ". И всем известно, сколь неэффективно они используют ресурсы субд/железа. А тем, кто пытается получать данные из этих систем, еще известно сколько ошибок целостности в таких системах.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37172456
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-LSV"Мотивируй !" (с)Приведен список не "прикладных решений", а "платформ". И всем известно, сколь НЕЭФФЕКТИВНО они используют ресурсы субд/железа. А тем, кто пытается получать данные из этих систем, еще известно сколько ошибок целостности в таких системах.
Пожалуй, подпишусь.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37172802
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-LSV"Мотивируй !" (с)Приведен список не "прикладных решений", а "платформ". И всем известно, сколь неэффективно они используют ресурсы субд/железа. А тем, кто пытается получать данные из этих систем, еще известно сколько ошибок целостности в таких системах.Платформы - чисто условно. Обычные приложения с использованием СУБД.
Неэффективно ? Пожалуй. Но на это есть причины. И не надо тут про ошибки архитекторов. Ок ?

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

И на этих типа платформах ХП вместо декларативных ОЦ? Может эти причины связаны с чем-то именно платформенным? Типа налабать свой язык и плюс по возможности достигнуть независимость от конкретной СУБД. Ну просто не сподобились налабать свое СУБД, а тока язык типа свой. Теперь два движка: свой язык и СУБД, ну естественно в сторону своего языка одеяло натянули. Вот может и вся та типа причина. Эта исключает, скорей всего ХП в принципе, и ни о каком их преимуществе над декларативными ОЦ не говорит наличие у кого-то таких причин.

Потому просто сказать, что там есть причина не достаточно на таком форуме. Нужно сказать в чем они.

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

Потому просто сказать, что там есть причина не достаточно на таком форуме. Нужно сказать в чем они.Это большая отдельная тема. И неоднозначная. Главная причина - независимость от конкретной БД.
Юзайте себе СУБД-ОЦ на здоровье.

зы: списка известных систем использующих СУБД-ОЦ никто так и не привел. :)
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37174894
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV,

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

Нет уж извините. Все преимущества скрывались за существованием причин у платформ не юзать декларативные ОЦ. Других причин для преимуществ ХП не было пока. Тока недостатки.


LSVЭто большая отдельная тема. И неоднозначная. Главная причина - независимость от конкретной БД.

Опять извините. Поскоку ХП значительно большая зависимость чем декларации: причины связанные с независимочстью от СУБД не подходячт совсем. Это как бы в минус ХП причины. Это вообще причины для тех у кого есть план теражировать над СУБДшную часть для разных систем. Это левая цель и причина по отношению к проектированию конкретной ИС.

LSV
Юзайте себе СУБД-ОЦ на здоровье.

Разумеется.

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

"Нет правил. Есть рекомендации." (с)

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


LSVПриведенная цитата касалась различных тиражных систем и причин построения их архитектуры. Конкретно про ХП там речь не шла, а шла про неиспользование ими СУБД-ОЦ.

Ну и пришла поэтому к тому, что не связана с преимуществом ХП (и вообще кода) над декларативными ОЦ. А есть для платформосоздателей какие-то там преимущества при поддержки решений на разных СУБД их платформ.
Ну так для тех кто независим от этих платформ - это в общем случае вообще не преимущество.

LSVЕсть примеры, где частично применяются сразу несколько подходов: СУБД-ОЦ, ХП, прямые запросы/проверки на клиенте и элементы платформы (встроенные средства разработки).

Да есть примеры и вовсе без СУБД. Особенно до появления СУБД их много было.
Мало ли что есть?

LSV
"Нет правил. Есть рекомендации." (с)

А рекомендации основаны на соотношениии недостатков и преимуществ.

LSVДальнейшие прения теряют смысл.
И как видим теперь: они сразу не имели смысла. Сенсации не произошло: то шо написано в умных книгах Вам пошатнуть не удалсь, скорее всего.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37175223
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да есть примеры и вовсе без СУБД. Особенно до появления СУБД их много было.
Мало ли что есть?Форумный троль детектед. :)
"В интернете кто-то неправ" (с)
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37175256
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVДа есть примеры и вовсе без СУБД. Особенно до появления СУБД их много было.
Мало ли что есть?Форумный троль детектед. :)
"В интернете кто-то неправ" (с)
Ну это типа аргументы преимуществ ХП над декларативными ОЦ, хорошо подходящие только для ТП. Здесь они,возможно, не уместны даже, если других нет. Здесь их вообще по хорошему должны были бы удалить.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37195201
А точно об одном и том же говорите, где-то проводите грань между EAV и нормализацией?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516920
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне один вопрос про EAV страшно заинтересовал. Как в нем множества отображаются? Например у накладной есть множество строк, которые уникально идентифицируются (внутри накладной) своим артикулом. Я в упор не вижу как в EAV-схеме (OID, имя атрибута, значение атрибута) этот случай отобразить.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516927
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneМне один вопрос про EAV страшно заинтересовал. Как в нем множества отображаются? Например у накладной есть множество строк, которые уникально идентифицируются (внутри накладной) своим артикулом. Я в упор не вижу как в EAV-схеме (OID, имя атрибута, значение атрибута) этот случай отобразить.
Хм... А вот "множество накладных, каждая из которых уникально идентифицируются..." вы можете вообразить?
Всё в той же модели.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516939
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автормножество накладных, каждая из которых уникально идентифицируются
понятно
что уж я призываю прочитать 15 станиц, коли одной строки нормально прочитать не могут...
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516941
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneавтормножество накладных, каждая из которых уникально идентифицируются
понятно
что уж я призываю прочитать 15 станиц, коли одной строки нормально прочитать не могут...
Ась? если честно, я не понял - какие проблемы то в этом то?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516952
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
я написал
U-geneв накладной есть множество строк , которые уникально идентифицируются (внутри накладной) своим артикулом. объясняю. Есть накладная. У нее ест заголовок (дата, число) и строки, где перечисляется какого товара (это артикул) сколько отпущено (это кол-во). Строки уникальны по полю артикул - в одной накладной не может ыбть несколко строк с одним артикулом. Такое вот описалово

Вы почему то прочитали
lockyмножество накладных, каждая из которых уникально идентифицируются Вы разницу чувствуете?
Я этому удивился.

Мой вопрос - как такую накладную, как я описал, в ЕAV представить? Вы можете нормально ответить?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516961
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene 2 locky
я написал
U-geneв накладной есть множество строк , которые уникально идентифицируются (внутри накладной) своим артикулом. объясняю. Есть накладная. У нее ест заголовок (дата, число) и строки, где перечисляется какого товара (это артикул) сколько отпущено (это кол-во). Строки уникальны по полю артикул - в одной накладной не может ыбть несколко строк с одним артикулом. Такое вот описалово

Вы почему то прочитали
lockyмножество накладных, каждая из которых уникально идентифицируются Вы разницу чувствуете?
Я этому удивился.

Мой вопрос - как такую накладную, как я описал, в ЕAV представить? Вы можете нормально ответить?
Нифига не чувствую разницу.
Есть множество строк накладных, которые уникально идентифицируются внутри подмножеств, полученных путём "секционирования" по документам.
Есть множество накладных, которые уникально идентифицируются внутри подможеств, полученных (скажем) путём секционирования по периодам/складам/поставщикам/чему так еще.

собственно, по вопросу: добавить аттрибут "артикул" и наложить на него ограничение уникальности. К сожалению, мне неизвестен иной способ наложения уникальности в такой структуре кроме как ограничение, обеспечиваемое слоем доступа к данным.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516965
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene Я в упор не вижу как в EAV-схеме (OID, имя атрибута, значение атрибута) этот случай отобразить. В лоб.
Для накладной 21
первая строка
имя атрибута - "артикул" - значение 1
имя атрибута - "идентификатор шапки" - значение 21
следующая строка накладной
имя атрибута - "артикул" - значение 2
имя атрибута - "идентификатор шапки" - значение 21

EAV он как бы не отказывается совсем от реляционной модели. Он ее хитро реализует.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516966
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257U-gene Я в упор не вижу как в EAV-схеме (OID, имя атрибута, значение атрибута) этот случай отобразить. В лоб.
Для накладной 21
первая строка
имя атрибута - "артикул" - значение 1
имя атрибута - "идентификатор шапки" - значение 21
следующая строка накладной
имя атрибута - "артикул" - значение 2
имя атрибута - "идентификатор шапки" - значение 21

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

То есть я прямо в имя атрибута записываю номер строки?

Но у меня номеров строки нет. Откуда я их возьму? У меня стоки уникальны по артикулу. А номеров у строк нету. Какие то левые данные.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516973
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SERG1257

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

То есть я прямо в имя атрибута записываю номер строки?

Но у меня номеров строки нет. Откуда я их возьму? У меня стоки уникальны по артикулу. А номеров у строк нету. Какие то левые данные.

эээээ... а вы точно понимаете что есть EAV?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516978
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene2 SERG1257

кстати, не вижу в вашей схеме количеств
я в показанном абстрактном примере еще много чего не вижу из того, что встречается в реальных системах
но на то он и пример
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516982
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
куда добавить атрибут артикул? бебят, я написал простой вопрос. столько эмоций! хотя можно 3 мин потратить и аккуратно изобразить.

Есть такая накладная

Код: plaintext
1.
2.
3.
4.
5.
6.
номер 21
дата 01.01.11

Art  Qty
----------
a1   12
a2   5

Как она будет представлена в EAV? Мне правда интересно,ну вдруг я что не догоняю?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37516987
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene 2 locky
куда добавить атрибут артикул? бебят, я написал простой вопрос. столько эмоций! хотя можно 3 мин потратить и аккуратно изобразить.

Есть такая накладная

Код: plaintext
1.
2.
3.
4.
5.
6.
номер 21
дата 01.01.11

Art  Qty
----------
a1   12
a2   5

Как она будет представлена в EAV? Мне правда интересно,ну вдруг я что не догоняю?

Вы всё-таки прочитайте про EAV для начала. А потом уже и поговорим более детально на предмет всяких факапов, которые встречаются в реальной жизни/практике и кто как их обходит.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517002
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый, я прочитал про EAV. Там, где я прочитал, обычно в качестве примера сохраняемого класса берут структуру, напоминающую кортеж, а с этим как раз все понятно.

Везде,где я прочитал, предполагается, что для хранения данных используется EAV-каноническая структура таблицы (OID, имя атрибута, значение атрибута). Как в ней хранить кортежоподобные структуры, мне совершенно понятно.Понятно так же что EAV может быть очень неплох в некоторых случаях, когда речь идет о добавлении новых полей именно к такой кортежеподобной структуре.

Но я задал вопрос структуры, содержащей множество. Привел пример такой структуры и попросил продемонстрировать, как такую структуру можно сохранить в EAV-системе. Я, честно, надеюсь, что мне здесь смогут помочь. Это ведь простой вопрос?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517005
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneУважаемый, я прочитал про EAV. Там, где я прочитал, обычно в качестве примера сохраняемого класса берут структуру, напоминающую кортеж, а с этим как раз все понятно.

Везде,где я прочитал, предполагается, что для хранения данных используется EAV-каноническая структура таблицы (OID, имя атрибута, значение атрибута). Как в ней хранить кортежоподобные структуры, мне совершенно понятно.Понятно так же что EAV может быть очень неплох в некоторых случаях, когда речь идет о добавлении новых полей именно к такой кортежеподобной структуре.

Но я задал вопрос структуры, содержащей множество. Привел пример такой структуры и попросил продемонстрировать, как такую структуру можно сохранить в EAV-системе. Я, честно, надеюсь, что мне здесь смогут помочь. Это ведь простой вопрос?
Не сомневаюсь, что вы прочитали. Поняли или не поняли - это, так сказать, другой вопрос.

Давайте начнем с простого, ок?

Вы можете представить себе список накладных в виде EAV?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517011
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

ну не прочитал ты нифига
а то не задавал бы детские вопросы
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517026
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 U-gene

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
insert into entity ('накладная') -- сгенерен id=1
insert into entity ('строка накладной') -- сгенерен id=2

insert into attribute ( 1 ,'номер') -- сгенерен id=1
insert into attribute ( 1 ,'дата') -- сгенерен id=2
insert into attribute ( 2 ,'номер накладной в строке') -- сгенерен id=3
insert into attribute ( 2 ,'Art') -- сгенерен id=4
insert into attribute ( 2 ,'Qty') -- сгенерен id=5

-- шапка
insert into value (attribute_id,value) values ( 1 ,'21') 
insert into value (attribute_id,value) values ( 2 ,'01.01.11') 
-- первая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a1') 
insert into value (attribute_id,value) values ( 5 ,'12') 
-- вторая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a2') 
insert into value (attribute_id,value) values ( 5 ,'5') 
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517028
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 locky
Хорошо, значит не понял.

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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
номер 21
дата 01.01.11

Art  Qty
----------
a1   12
a2   5
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517029
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene2 locky
Хорошо, значит не понял.

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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
номер 21
дата 01.01.11

Art  Qty
----------
a1   12
a2   5

прежде чем переходить к сложному - надо бы освоить простое. А затем уже, постепенно....
Впрочем, вам уже дали пример.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517030
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2SERG1257 спасибо
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517060
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 ехидный коммент :)

обидно вообще то. люди старались, выдумывали bigint'ы и vchar'ы а тут бац - все в строку.

2 серьезный коммент
вот этот кусок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
-- первая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a1') 
insert into value (attribute_id,value) values ( 5 ,'12') 
-- вторая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a2') 
insert into value (attribute_id,value) values ( 5 ,'5')

где здесь сохранено, что артикулу a1 соответствует кол-во 5 (а не 12)?

например, поменяю я меняю последовательность строк

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
-- первая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a1') 
insert into value (attribute_id,value) values ( 5 ,'5') -- здесь было 12 
-- вторая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a2') 
insert into value (attribute_id,value) values ( 5 ,'12') -- здесь было 5

результат тот же самый.

Где же сохраняется информация об отношении артикулов и количеств?

Это момент я не понял.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517068
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene1 ехидный коммент :)

обидно вообще то. люди старались, выдумывали bigint'ы и vchar'ы а тут бац - все в строку.

Хм... а вы точно таки читали всякую там теорию (да и всё что написано на скуль. ру)? Потому как это всё-таки пример, а не реальная структура

U-gene2 серьезный коммент
вот этот кусок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
-- первая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a1') 
insert into value (attribute_id,value) values ( 5 ,'12') 
-- вторая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a2') 
insert into value (attribute_id,value) values ( 5 ,'5')

где здесь сохранено, что артикулу a1 соответствует кол-во 5 (а не 12)?

например, поменяю я меняю последовательность строк

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
-- первая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a1') 
insert into value (attribute_id,value) values ( 5 ,'5') -- здесь было 12 
-- вторая строка
insert into value (attribute_id,value) values ( 3 ,'21') 
insert into value (attribute_id,value) values ( 4 ,'a2') 
insert into value (attribute_id,value) values ( 5 ,'12') -- здесь было 5

результат тот же самый.

Где же сохраняется информация об отношении артикулов и количеств?

Это момент я не понял.
пропущен аттрибут "идентификатор строки".
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517112
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой идентификатор строки?
у меня нет такого атрибута.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517120
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

на, примерная схема
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517122
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneкакой идентификатор строки?
у меня нет такого атрибута.
Ну, у вас там и идентификатора документа, вообще-то, не наблюдается...
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517149
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2locky
Строка уникальна артикулом.
накладная уникальна номером.
Отдельных специальных идентификаторов нет.
C заголовком накладной понятно - так как раз кортежная структура. Вопросов нет - значнение номер накладной одноханчно соотносится со всеми остальными скалярами, составляющий этот кортеж.

А вот со строками непонятно. Во всяком случае ответ Ну, у вас там и идентификатора документа, вообще-то, не наблюдается... на него не отвечает

автор2ViPRos
опана

Долго курил схему.
мне кажется - две таблицы (заголовок и строки) немного проще.

Хорошо, здесь мой ехидный комментарий о многообразии типов слегка снимается. Какое то разнообразие типов наблидается (хотя теперь возникает вопрос, что же делать, ежели в программе у какого-то существующего свойства вдруг потребовалось поменяем тип "целое" на тип "число")

Но серьезный коммент остается полностью в силе. Как в этих таблицах "ОбъектСвойство..." сохраняется информация об отношениях? Например, в моем примере артикулу а1 соответствует кол-во 5, а не 12. Я, правда, вижу еще какое то поле "Системный", но что за данные в нем хранятся?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517166
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

блин сооьбщнгие пропало
еще раз

Любой объект имеет собственный идентификатор - ОбъектИД
Любое свойство (значение - множество) имеет собственный идентификатор - СвойствоИД
Пишется так
ОбъектИД, СвойствоИД, ЗначениеСвойства
Свойство може быть и Объект (ууууооочень сложный)
тогда
ОбъектИД, ОбъектИД, СсылкаНаОбъект (ну для понимания переименовал, а так все пишется как выше указна)

На основе этого -
можно в лоб использовать хранилище как ЕАВ
создать вьшки
создать персистентные таблицы

зависит от требований к производительности
в ВИПРОС все 3 реализованы и выбирается галочкой
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517172
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
между методами и структурами есть контракт
1. если метод пользуется определенным срезоммоели и явно указано, что методу свойство такое то нужна как определенный тип, то проваййдер генерирует(преобразовывает) нужный тип при возможноси
2. при изменении модели верифицируются все контракты, если преобразования невозможны то в зависимости от привилегий метода либо изменения модели не допуска.тся либо метод метиться как не исполнимый
вот и все
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517176
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поле системный - для других целей
несистемный означет, что это свойство не типизирована (т.е. пользовательскон нетипизированное динамическое расширение объекта)
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517226
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene 2locky
Строка уникальна артикулом.
накладная уникальна номером.
Отдельных специальных идентификаторов нет.
C заголовком накладной понятно - так как раз кортежная структура. Вопросов нет - значнение номер накладной одноханчно соотносится со всеми остальными скалярами, составляющий этот кортеж.

вот интересно... с "закоголовками - понятно, а со строками - непонятно".....
Мне вот непонятно, как это понятно с первым и непонятно со вторым - ведь использована одна и та же структура данных....
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517228
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вообще, повторюсь - было бы неплохо чего нить почитать "по теме".
Потому как вопросы, пардон, на уровне "а как это она без лошадей ездит?"
EAV разжевывалась уже не раз, в т.ч. в "сравнении" (если правильно помню), рассматривались различные варианты реализации, преимущества/недостатки и т.п.
Имеет смысл поискать/почитать, а не перетирать всё снова в стотысячный раз
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517310
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyИ вообще, повторюсь - было бы неплохо чего нить почитать "по теме".
Конечно неплохо. Но мне и с умными людьми приятно пообщаться. Надеюсь, взаимно :)


2ViPRos
Я правильно понял, что каждую строку накладной мы рассматриваем как отдельный объект? Соответственно, объект "заголовок накладной" связан с "объектами - строками" множеством "ссылок" - то есть идентификаторов объектов строк? Да, так отношение представить можно.

Но, вообще, нехило мы извернулись, что бы представит отношение(!) в реляционной БД (!!). Это как взять блокнот и вместо того, что бы написать записку (связный текст) на одном листочке, писать этот же текст по одной букве на листочек. Хотя, возможно, где то это оправдано.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37517316
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-genelockyИ вообще, повторюсь - было бы неплохо чего нить почитать "по теме".
Конечно неплохо. Но мне и с умными людьми приятно пообщаться. Надеюсь, взаимно :)

Чтобы получать правильные ответы нужно задавать правильные вопросы. Не думаю что такой формат общения будет весьма продуктивным.

U-gene 2ViPRos
Я правильно понял, что каждую строку накладной мы рассматриваем как отдельный объект? Соответственно, объект "заголовок накладной" связан с "объектами - строками" множеством "ссылок" - то есть идентификаторов объектов строк? Да, так отношение представить можно.

Но, вообще, нехило мы извернулись, что бы представит отношение(!) в реляционной БД (!!). Это как взять блокнот и вместо того, что бы написать записку (связный текст) на одном листочке, писать этот же текст по одной букве на листочек. Хотя, возможно, где то это оправдано.
Я повторюсь: преимущества и недостатки EAV были уже неоднократно(!) разобраны, разжеваны и т.п. Почитайте по теме.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518046
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene 2ViPRos
Я правильно понял, что каждую строку накладной мы рассматриваем как отдельный объект? Соответственно, объект "заголовок накладной" связан с "объектами - строками" множеством "ссылок" - то есть идентификаторов объектов строк? Да, так отношение представить можно.

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

"Связный текст" состоит из параграфов, предложений, а они из слов. Как они хранятся- пофиг, главно, что бы в любой момент можно было бы восстановить их Порядок. Для этого служит метаописание.
"Это" оправдано везде, где нет возможности Один раз и окончательно определить модель предметной области и пользовательское (дальнейшее) расширение модели должно однозначно трактоваться интерпретатором модели.
Я тут где то описывал систему непрерывной классификации(типизации) объектов, когда типы рождаются/умирают динамически в течении жизненного цикла системы.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518552
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRos"Это" оправдано везде, где нет возможности Один раз и окончательно определить модель предметной области и пользовательское (дальнейшее) расширение модели должно однозначно трактоваться интерпретатором модели.
+100
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518565
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-geneкакой идентификатор строки?
у меня нет такого атрибута.
Он всегда неявно присутствует в таблице, а EAV его скрытно генерирует при insert. Точно так же как генерируются id объектов.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518826
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11/09/2011 12:14 AM, U-gene wrote:

> Строка уникальна артикулом.
> накладная уникальна номером.
> Отдельных специальных идентификаторов нет.

В EAV всё имеет специальные сурогатные идентификаторы.
Одно из основных свойств объекта в ООП -- идентифицируемость
каждого объекта. Идентификатор обязателен.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518912
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivВ EAV всё имеет специальные сурогатные идентификаторы.
Одно из основных свойств объекта в ООП -- идентифицируемость
каждого объекта. Идентификатор обязателен.


У меня есть такое скромное желание - самому управлять тем, что считать объектом, а что не считать. Например, я считаю, что есть такой объект "накладная". Соответственно этой накладной, как любому другому объекту, должен быть присвоен OID.

В EAV у строки идентификатор появляется, потому что по-другому не получится. Это вынужденная мера и я не думаю, что ее надо связывать с ООП. Это скорее "ассоциативный адрес" который необходим при такой организации хранения данных.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518915
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneMasterZivВ EAV всё имеет специальные сурогатные идентификаторы.
Одно из основных свойств объекта в ООП -- идентифицируемость
каждого объекта. Идентификатор обязателен.


У меня есть такое скромное желание - самому управлять тем, что считать объектом, а что не считать. Например, я считаю, что есть такой объект "накладная". Соответственно этой накладной, как любому другому объекту, должен быть присвоен OID.

В EAV у строки идентификатор появляется, потому что по-другому не получится. Это вынужденная мера и я не думаю, что ее надо связывать с ООП. Это скорее "ассоциативный адрес" который необходим при такой организации хранения данных.
Т.е. "строка накладной" - не является объектом?
Хотя сама накладная - является.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518916
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
btw, PK необходим вроде как всегда :)
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518928
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyТ.е. "строка накладной" - не является объектом?
Хотя сама накладная - является.

Я так хочу. Что бы не плодить сущностей, сверх надобности.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518939
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky,

да он не вникает в подробности
да, объект может содержат какие то коллекции, а элементы этих коллекций тоже и т.д.
теперь построй запрос от обратного, тип значение само вложенной коллекции = чему то
и пойдет перебор
или придется предварительно выпрямить всю эту фигню и построить индексы
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518944
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene,

да ты уже наплодил, вводив Именованную коллекцию
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518948
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-genelockyТ.е. "строка накладной" - не является объектом?
Хотя сама накладная - является.

Я так хочу. Что бы не плодить сущностей, сверх надобности.
Хм... а в обычной 3НФ у вас строки накладной, простите, тоже не выражаются таблицей? И если таки так и есть - то чем они выражаются?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518951
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если хошь что бы эта коллекция была не видна снаружи, о сделай ее без точки доступа
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37518987
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyU-geneпропущено...


Я так хочу. Что бы не плодить сущностей, сверх надобности.
Хм... а в обычной 3НФ у вас строки накладной, простите, тоже не выражаются таблицей? И если таки так и есть - то чем они выражаются?

А как связаны 3НФ и EAV?

Я как раз и говорю, вмето того, что бы представить строки накладной в виде таблицы (как в 3НФ), мы (в EAV) городим огород.

В 3НФ мое желание (накладная есть целый объект, у которого есть свой OID) легко реализуется. В таблицы заголовков OID есть ключ. В таблице строк OID есть часть ключа.

Стоп-стоп. не налдо драк :) На самом деле это реакция на замечание MasterZiv
В EAV всё имеет специальные сурогатные идентификаторы.
Одно из основных свойств объекта в ООП -- идентифицируемость
каждого объекта Я просто хочу сказать, что идентификаторы EAV не стоит сравнивать с OID. Разве это не так?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37519004
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene Я просто хочу сказать, что идентификаторы EAV не стоит сравнивать с OID. Разве это не так?
стоит. они и есть ОИД
просто некоторые ОИД могут быть не доступными снаружи
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37519010
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneА как связаны 3НФ и EAV?

Я как раз и говорю, вмето того, что бы представить строки накладной в виде таблицы (как в 3НФ), мы (в EAV) городим огород.

мы и в 3нф городим.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37519023
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosU-gene Я просто хочу сказать, что идентификаторы EAV не стоит сравнивать с OID. Разве это не так?
стоит. они и есть ОИД
просто некоторые ОИД могут быть не доступными снаружи

Значит у Вас "объект" - это термин хранения. а не термин связанный с предметной областью.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37519029
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lockyU-geneА как связаны 3НФ и EAV?

Я как раз и говорю, вмето того, что бы представить строки накладной в виде таблицы (как в 3НФ), мы (в EAV) городим огород.

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

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

предметная область описана в метамодели
а ЕАВ Может быть способом хранения (хотя бы для расширений)
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37519166
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11/09/2011 07:48 PM, U-gene wrote:

> У меня есть такое скромное желание - самому управлять тем, что считать объектом,
> а что не считать. Например, я считаю, что есть такой объект "накладная".
> Соответственно этой накладной, как любому другому объекту, должен быть присвоен OID.

Желание очень хорошее. Только что ж ты тогда от нас хочешь -то ?


> В EAV у строки идентификатор появляется, потому что по-другому не получится. Это
> вынужденная мера и я не думаю, что ее надо связывать с ООП. Это скорее
> "ассоциативный адрес" который _необходим_ при такой организации хранения данных.

Да, это именно вынужденная мера и по-другому не получится. Да, ассоциативный
адрес (адрес или идентификатор объекта), да, необходим.

Только к чему это всё было сказано ?

А с ООП её нельзя не связывать, именно потому, что тут моделируется ООП,
применяется его подходы. А в ООП идентифицируемость объекта -- одно из
важнейших свойств. Собственно, и в рел. теории идентифицируемость
кортежа -- одно из важнейших свойств.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37519168
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11/09/2011 07:50 PM, locky wrote:

> Т.е. "строка накладной" - не является объектом?
> Хотя сама накладная - является.

Является, или нет, в EAV всё будет объектом, что имеет
атрибуты. Иначе придётся делать не чисто EAV, а гибрид.
В этом тоже ничего плохого нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37519171
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 11/09/2011 08:35 PM, U-gene wrote:

> Значит у Вас "объект" - это термин хранения. а не термин связанный с предметной
> областью.

Так в EAV оно так и есть.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37665615
eXploy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Подскажите, образом можно представить eav-модель без повторения сущностей в таблице сущностей?
ну, чтобы не было такого:
id| title
1 | Товар
2 | Товар
...
7 | Товар
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37665623
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eXploy,
если я не ошибаюсь, при EAV сущности (точнее - их экземпляры) не повторяются в таблице (-ах) сущностей
равно как и при 3NF
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37665652
eXploy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky,

во во, я тоже так думаю, что не должно. Просто у самого не получается разобраться как тогда однозначно идентифицировать тот или иной экземпляр сущности, прочитал приличное количество статей, все равно не могу (может, правда, недостаточно внимательно читал =/ )

Сущности
1 Сотрудник

Атрибуты
1 Фамилия
2 Имя
3 Отчество

Связи
1 1 Иванов
1 2 Иван
1 1 Петров
1 3 Петрович
1 3 Иванович
1 2 Петр

Что надо сделать чтобы можно было однозначно идентифицировать сотрудника (например, по фамилии - "Петров"), при этом не дублируя сущности
1 Сотрудник
2 Сотрудник...?

Спасибо!
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37665661
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eXploylocky,

во во, я тоже так думаю, что не должно. Просто у самого не получается разобраться как тогда однозначно идентифицировать тот или иной экземпляр сущности, прочитал приличное количество статей, все равно не могу (может, правда, недостаточно внимательно читал =/ )

Сущности
1 Сотрудник

Атрибуты
1 Фамилия
2 Имя
3 Отчество

Связи
1 1 Иванов
1 2 Иван
1 1 Петров
1 3 Петрович
1 3 Иванович
1 2 Петр

Что надо сделать чтобы можно было однозначно идентифицировать сотрудника (например, по фамилии - "Петров"), при этом не дублируя сущности
1 Сотрудник
2 Сотрудник...?

Спасибо!
а как вы идентифицируете тот или иной экземпляр сущности в 3NF?
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37665698
eXploy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky,

собственно там с эти проблемы быть не может, т.к. у каждого сотрудника свой id , а у каждой сущности своя таблица.
А вот такой моделе eav, где и сущности в одной таблице, куда можно этот id пристроить ума не приложу : )

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

собственно там с эти проблемы быть не может, т.к. у каждого сотрудника свой id , а у каждой сущности своя таблица.
А вот такой моделе eav, где и сущности в одной таблице, куда можно этот id пристроить ума не приложу : )

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

только не "таблицы", а "таблицу". Хотя иногда бывает удобно и "таблицы"
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37665802
eXploy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
locky,

спасибо! разобраться так же помогла вот эта схема
http://www.databaseanswers.org/data_models/father_of_all_models/index.htm
...
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37666571
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eXployЗдравствуйте.
Подскажите, образом можно представить eav-модель без повторения сущностей в таблице сущностей?

Скорее всего, в ЕАВе в таблице сущностей, экземпляры таблицы сущностей, а не сущности, поскоку у их нету типа структуры, как, например, у таблы Сотрудник с колонками:Фамилия и проч. Так или иначе, все достижения РМД: SQL, OЦ там уже, возможно, утрачиваются в значительной мере (ея же идея уйти от структурированности, а эти достижения существенно благодаря структурированности), а своих собственных у ЕАВа, вроди, нету.
Так что повторение чего-то там, может оказаться не самым худьшим злом, и, возможно, моно забить на это.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #37666925
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eXployРазве что таблицы сущностей оставить, а в отдельно вынести только атрибуты, количество которых при проектировании бд неизвестно..
Именно так. С учетом изменений значений атрибутов во времени.
...
Рейтинг: 0 / 0
EAV - это выворачивание реляционной модели наизнанку.
    #38039674
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал топик с вашим участием

Вы там жалуетесь что вам никто ответить не может.

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


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