[Moscow.pm] Размышления на тему ORM и вообще работы с БД
Peter Rabbitson
rabbit+moscowpm на rabbit.us
Пт Окт 28 05:46:24 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. соответственно ожидалось что при
> удалении объекта отношения другой объект либо "молча" обновится (что
> должно быть управляемо), либо будет помечен как измененный.
Кстати я здесь не врубился в чем вопрос. Если:
Result::Task->has_many(user => 'Result::User', 'task_id', { cascade_delete => 1 });
то тогда да, $task->delete действительно выплюнет правильный ожидаеммый
DELETЕ (и так до конца по рекурсии). Однако (как и следует ожидать) с
объектом $user ничего не произойдет, пока на нем не позовут
$user->discard_changes
Подробная информация о списке рассылки Moscow-pm