Изменения

Перейти к: навигация, поиск

BugzillaORM

1743 байта добавлено, 14:16, 20 сентября 2009
Реальная проблема
Реальная проблема, ради решения которой задуман ORM — сложность, возникающая при попытке организовать сохранение в БД ''большого числа'' объектов '''разных типов''' со '''сложными отношениями''' друг между другом.
Даже [[lib:Bugzilla|Bugzilla]] имеет своё подобие ORM’а. И причина именно в этом — нужно управлять многими типами объектов. У бага много атрибутов, для каждого атрибута заведён отдельный тип «поле», а некоторые из этих типов одновременно являются самостоятельными объектами (продукты, компоненты).Отличительная черта багзильного ORM’а, по-моему, заключается в том, что он ориентирован на поля объектов и на универсальность доступа к значениям этих полей, но при этом не использует термина «связь» (один-к-одному, один-ко-многим и т. п.). Кроме того, «правильный» ORM должен делиться на две части: # Обеспечивающий язык запросов и# Схема объектного взаимодействия. При этом язык запросов ''должен'' быть полным относительно возможностей нижележащего SQL. Аргументация простая: если полноты не будет, некоторый процент ситуаций потребует перехода на «ручное» выполнение собственных SQL-запросов, что обычно означает потерю всех преимуществ языка. Остаётся, конечно, вопрос процента таких ситуаций — если их очень мало, наверное, проблем также будет очень мало. Реально же многие (если не большинство) ORM-движков пытается скрестить ужа и ежа, то есть обе части, в одну. == FunMap == # Обеспечивающий язык запросов — [[Funq]].# Схема объектного взаимодействия — ниже.  
[[Категория:Разработка]]

Навигация