[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