one => one
및 one => many
관계를 지원하는 기본 orm을 만들기 위해 해킹하고있었습니다. 나는 다소 성공했다고 생각하지만 순환 관계를 다루는 방법에 대해 궁금합니다. 나는 당신이하고 싶은 이유를 잘 모르겠습니다 지금ORM은 일반적으로 순환 관계를 허용합니까? 그렇다면 어떻게 처리할까요?
$u = new user();
echo $u->car->wheels[0]->car->wheels[1]->car->wheels[2]->car->wheels[3]->type;
#=> "monster truck"
:
user::hasOne('car');
car::hasMany('wheels');
car::property('type');
wheel::hasOne('car');
그런 다음이 (이론적으로) 할 수있는 :
는이 같은했다 말해봐. 훨씬 짧은 시간에 끝낼 수있는 무언가를 얻으려면 기억과 시간의 낭비가 낭비되는 것 같습니다. 내 작은 ORM에서는 wheel 클래스의 복사본 4 개와 메모리에있는 car 클래스의 복사본 4 개가 있습니다. 그 중 하나를 업데이트하고 데이터베이스에 다시 저장하면 문제가됩니다. 나머지는 오래된 것입니다. 이미 만들어진 변경 사항을 덮어 쓸 수 있습니다.다른 ORM은 순환 참조를 어떻게 처리합니까? 그들은 심지어 그것을 허용합니까? 그들은 나무 위로 올라가서 부모 중 한 명에게 포인터를 만드나요? 서클에서 돌아 다니기에 바보 인 경우 코더가 발에서 자신을 쏠 수 있습니까?
그래서 기본적으로 3 개의 자동차 오브젝트를로드하고 하나를 변경하고 저장하는 것과 동일한 작업을 수행합니까? – SeanJA