몇 가지 복잡한 데이터 관계가있는 Rail 3.2 앱을 제작하고 있습니다. 나는 데이터베이스를 구성하는 최선의 방법이 무엇인지 궁금하다.Rail 앱에서 양방향 다형성 관계의 단점은 무엇입니까?
내가 모델로하려는 데이터는 Facebook의 요소와 비교됩니다.
예를 들어, 사용자가 만들 수있는 항목이 있습니다 :
- 의견
- 사진
- 게시물
- 상태
- 업데이트
이러한 각 항목 수 소속 :
- 사용자
- 비즈니스
- 위치 그래서 예를 들면
는 "사용자 A는 파리에서 MacDonalds의에서 사진을 찍은".
각 사용자, 비즈니스 및 위치 페이지에 활동 스트림을 표시하려고합니다.
이렇게하는 방법은 양방향 다형성 관계가 있습니다.
class ActivityOwner
belongs_to :ownable, :polymorphic => true
end
class User | Business | Location
has_many :activity_owners, :as => :ownable
end
다음 activity_owner이 activity_feed 속한 것이며, activity_feed 많은 activity_owners있을 것 소유권
에 대한class ActivityFeed
belongs_to :feedable, :polymorphic => true
end
class Comment | Photo | Status
has_many :activity_feeds, :as => :feedable
end
하나 : 활동에 대한
하나.
나는 그것이 의미가 있기를 바랍니다.
이 사례를 해결하는 좋은 방법입니까? 내가 생각해야 할 성능 문제가 있습니까? 더 좋은 방법이 있습니까?
다음과 같은 질문 :이 접근법을 사용하면 동일한 모델을 다양한 방식으로 다형성 관계에 매핑 할 수 있습니다. 예를 들어 사용자는 사진의 소유자가 될 수 있으며 태그가 지정된 사용자 일 수 있습니다.
나는 레일즈를 배우려고 노력하고 있는데, 나는이 문제에 대해 머리를 쓰려고 고심하고있다. 나는 다른 사람들의 의견, 경험, 아이디어뿐만 아니라 유용한 정보 나 가이드에 대한 조언을 정말 고맙게 생각한다.
감사합니다.
감사합니다. yuri,이 성능 수치를 아는 것이 정말 유용합니다. 내 관심사는 단순히이 테이블의 크기라고 생각합니다. 예를 들어 게시 된 모든 사진에는 ActivityOwner 테이블 (사용자, 회사, 위치)에 세 개의 레코드가 있습니다. 태그가 지정된 사용자 또는 좋아하는 사용자가 있거나 ...이 숫자가 더 커집니다. ActivityOwner 테이블은 빠르게 커지며 다형성 연결이 잘 수행되는 경우에도 여전히 약간의 오버 헤드가 있습니다. 그래서 더 좋은 방법이 있는지 궁금합니다. –