[Moscow.pm] Размышления на тему ORM и вообще работы с БД
Peter Rabbitson
rabbit+moscowpm на rabbit.us
Чт Окт 27 23:46:40 PDT 2011
On Fri, Oct 28, 2011 at 10:20:06AM +0400, Ivan Petrov wrote:
> > ну уж не говоря о простом:
>
> > имеем объект
>
> > user
>
> > у него есть отношение
>
> > task
>
> > $user->task->delete;
>
> > далее
> > $user->is_changed == 0
> > $user->in_storage == 1
>
> > отношения между объектами, говорите? где они?
> > ладно бы они были реализованы
>
> > Отношение здесь $user->task.
>
> > А какое поведение в этом случае ожидадлсь?
>
> не все БД поддерживают FOREIGN. соответственно ожидалось что при
> удалении объекта отношения другой объект либо "молча" обновится (что
> должно быть управляемо), либо будет помечен как измененный.
А при чем здесь... Где в документации DBIC что либо сказано про synchronized
storage или даже про single instance storage? Я так понимаю такой код тебя
тоже смущает?
my $copy_one = $rs->first;
my $copy_two = $rs->first;
$copy_one->bar(500);
$copy_two->bar(600);
$copy_two->update;
$copy_one->update;
итог:
$copy_one->foo == 500
$copy_one->is_changed == 0
$copy_two->foo == 600
$copy_two->is_changed == 0
в СУБД - 500
Я еще в первом письме упомянул про недопонимание API. DBIC всего лиш
инструмент, не полный (говно)фреймворк. Вот напишем поверх него наш
(говно)фреймворк года через 2, с update scopes, single-instance-storage.
и т.д. - тогда милости просим опят попробовать, ибо то что мы имеем и чему
рады для тебя явно ORM не является.
Подробная информация о списке рассылки Moscow-pm