1

나는 서로에게 1 대 1 인 두 가지 모델을 가지고있다. A는 현재 하나의 B를 가지고 있습니다.두 모델이 서로 속 할 수 있습니까?

요즘 논리를 단순화하고 성능을 높이기 위해 A가 B의 ID를 유지하는 것이 바람직한 경우가 많이 있습니다.

  1. 이 어떤 생각
  2. 을 위반하는 것이 가능하고 컨벤션
  3. 정말

UPDATE

내가 잘못했다, 왼쪽 외부 것 조인 경우 궁금해 여분의 외래 키로 인해 이익을 얻지 못한다.

제가 생각할 수있는 유일한 곳은 B가없는 A를 모두 찾는 것입니다. 내 100000 개가 넘는 레코드 각각에 내부 조인이 필요합니다. 하지만 이드가 있다면 바로 A가 B를 가졌음을 알 수 있습니다.

+0

has_one/belongs_to 설정으로 현재 어떤 성능 문제가 발생합니까? – Gareth

+0

현재 다른 조건이 많은 B와 함께 다른 쿼리 로직을 필요로하는 쿼리에 대해 LEFT OUT JOIN을 수행해야합니다. – lulalala

+0

모델을 자세히 설명하고 순환 참조가 필요한 이유를 알려주십시오. – Antoine

답변

0

나는 이것이 가능하지 않다고 생각합니다. 외래 키를 어디에 둘 것인지 결정해야합니다. 관계를 통해 참여를 사용하고 기존 모델 모두가 참여를 통해 has_one이되는 것이 합리적입니까?

0

또 다른 대안은 B id에 B id를 넣는 것, 즉 비정규 화 (denormalize)하는 것입니다. 이렇게하면 B가없는 A와 B가있는 A를 파악할 수 있습니다. 이는 B가 A 사이를 자주 이동하지 않는 시나리오를보고하는 경우에 적합 할 수 있습니다.

관련 문제