Изменения

BugzillaORM

1809 байтов добавлено, 22:24, 7 сентября 2009
Нет описания правки
Есть и сложный путь — использование языка запросов типа [[rupedia:Language_Integrated_Query|LINQ]] или [[Funq]]. Ради решения этих трёх проблем они и был задуманы.
Тем не менее, ORM'а ORM’а всё равно хочется. Даже Bugzilla имеет своё подобие ORM’а. ''Почему?''
А вот некоторый обзор существующих модулей ORM: * {{CPAN|SPOPS}} — ужас кривой, тормозной, неиллюзорный, заброшенный в 2004 году.* {{CPAN|DBIx::Class}} — лидер области. Тяжеловесный, имеет кучу возможностей и вторую кучу — зависимостей. Например, использует {{CPAN|mro}} 'c3'. Частично совместим с Class::DBI. Но вы как хотите, а «БД-независимый» язык запросов, основанный на хешах — это ад. Что-то типа Vsem::DB::Query из [http://www.vsem.ru vsem.ru], кстати.* {{CPAN|Class::DBI}} — говорят, легковесный. Наиболее старый — родился в 2001 году.* {{CPAN|DBR}} — весьма похож на Funq. Но явно попроще. Наиболее, кажется, «альтернативный».* {{CPAN|Rose::DB::Object}}.* {{CPAN|Class::AutoDB}}. А вот ещё одна почти бессмысленная возможность: итераторы. Даже {{CPAN|DBR}} её, кстати, не лишён. То есть она осмысленная — в GUI-приложениях. Но не в веб-приложениях, где сам DBI, во-первых, никогда не держит открытых курсоров, во-вторых, это часто не даёт делать СУБД, а в-третьих, это совершенно не нужно, так как время исполнения запроса должно быть как можно более малым, а следующий запрос уже вряд ли попадёт в тот же поток (или вообще процесс).
[[Категория:Разработка]]