2012-02-19 5 views
0

데이터베이스에있는 사람들의 하위 그룹에게 메시지를 보낼 시스템 구현과 관련하여 질문이 있습니다.조건으로 찾기 부울 검색은 'true'여야합니다.

[잠재적] 메시지받는 사람은 테이블에 보관됩니다. 각받는 사람 레코드에는 특정 그룹의 구성원인지 여부를 나타내는 열 부울 집합이 있습니다. msg_group_1 : 부울, msg_group_2 : 부울 등.받는 사람은 둘 이상의 그룹에 속할 수 있습니다.

또한 메시지 테이블이 있습니다. 각 메시지 레코드에는 메시지가 의도 된 그룹을 나타내는 부울 집합이 있습니다.

그런 다음 새 메시지가 작성되면 양식에 메시지를 보낼 그룹을 나타내는 확인란이 포함됩니다.

보내기를 구현하려면 새 메시지의 대상인 그룹에 속한받는 사람 테이블의 모든 구성원을 찾아야합니다.

내가 사용할 수 없습니다

,이 한 쌍은 논리 값이 (분명히 난 단지 모두 플래그는 경우 원하는 모두 거짓입니다 경우에도 논리 값이 동일한 기록과 일치 것 같은

Recipients.find(:all, :conditions => ['msg_group_1 = ? OR msg_group_2 = ?', @message.msg_group_1, @message.msg_group_2]) 

...

참된).

SQL 검색이나 두 가지 플래그가 모두 해당하는 일치하는 레코드를 얻을 수있는 다른 Ruby on Rails 트릭을 사용하여 이들을 '찾는'방법이 있습니까?

감사합니다.

+0

이 구체적인 예를 다룬 답변을 얻었지만 여기서 실제로하고있는 것을 깨달았습니다. 디자인이 이상적이지 않습니다. 새 메시지 그룹이 필요할 때마다 새 열을 추가 할 예정입니까? – jdl

+0

예, 디자인이 이상적이지 않다는 것을 깨닫기 시작했습니다 .-) 즉, 메시지 그룹의 수가 작고 고정되어 있습니다. 대안 디자인 제안을 환영합니다. – Snips

+0

"각받는 사람 레코드에는 특정 그룹의 구성원인지 여부를 나타내는 열 부울 집합이 있습니다."-받는 사람이 MessageGroup에 속하고 MessageGroup에 많은받는 사람이있는 일대 다 관계로 들립니다. – Ineu

답변

0

이 질문은 글을 쓰는 시점에서 5 개월 동안 공개되어 아무도 해결책을 제시하지 않았으므로 '대답'은 불가능하다고 여겨집니다.