On Fri, Oct 28, 2011 at 11:03:53AM +0400, Ivan Petrov wrote: > >> не все БД поддерживают FOREIGN. соответственно ожидалось что при > >> удалении объекта отношения другой объект либо "молча" обновится (что > >> должно быть управляемо), либо будет помечен как измененный. > > > А при чем здесь... Где в документации DBIC что либо сказано про synchronized > > storage или даже про single instance storage? Я так понимаю такой код тебя > > тоже смущает? > > мне тут упирали на relational. > > соответственно надо определиться где этот relational. только в БД? > тогда какой смысл его упоминать в отношении к ORM? или он и в > выбранных объектах тоже есть?
Relational в смысле с легкостью ходит по набору данных, не задолбывая програмиста писать join-ы. Все происходит на уровне определения resultset, что само по себе являтся "query-plan" (твой ненавистный SQL генератор). После того как SQL забит в СУБД - данные можно заввернуть в объекты а можно пользоватся так. По умолчанию объекты ничего друг о друге больше не знают, и знать не должны. > тогда почему при удалении этого самого relational-объекта, объекты к > которым это прямо относится ничего об этом "не знают" и "знать не > хотят"? Потому что тогда нарушим правило "no single instance storage". То что я показал в предыдущем письме не может сосуществовать с тем что ты хочеш. Row обект не является 1) едиснтвенной копией на всю программу 2) не гарантированно синхронизован с текущим состоянием СУБД. Поверх можно конечно наворотить, но уже своими ручками. Есть кстати http://search.cpan.org/~dcantrell/DBIx-Class-SingletonRows-0.11/lib/DBIx/Class/SingletonRows.pm -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
