2013-09-24 3 views
0

내 앱에서이 일정과 같은 주 예약/일정을 구현해야합니다. 내 데이터베이스를 쿼리 및 specificics 슬롯에서 사용할 수있는 사용자를 찾을 수 있어야합니다스핑크스를 생각하는 데이터베이스 설계 : 주 일정

Week schedule

: 각 사용자는 자신의 주 availabities 있습니다. 필자는 모델에 직접 7x7 = 49 불리언 값 속성을 구현할 수는 있지만 매우 깨끗한 해결책이 아닐 수 없습니다!

기타 문제 : Thinking_sphinx gem을 사용하여 패싯 탐색을 사용하여이 컨텐트 (및 다른 속성들도)를 인덱싱하고 쿼리 할 수 ​​있습니다. 패싯 숫자의 한계가 있기 때문에 그것이 사실인지 아직 모르겠습니다.

예를 들어 "Mo1 Mo2 Mo3 ..... Th1 Th6 Th7 Fr1 ..... Su7"을 포함하는 49 개의 부울 속성 또는 1 개의 단일 문자열 속성을 사용하는 것이 더 좋다고 생각합니까?

또는 다른 해결책이 있습니까?

+0

사람이 공연 문제의이 보석 https://github.com/pboling/flag_shih_tzu 하지만 돌보는를 사용하라고 제안 : http://stackoverflow.com/questions/18099483/what-is-the-maximum- flag-flag-shih-tzu-can-handle 플래그의 양 – alex

답변

1

첫 번째로 주목해야 할 점은 문자열 속성 (필드와 반대)은 필터에서 사용할 수없고 패싯 (모든 문자열이 단일 문자열에 함께 표시되지는 않음)에 단일 문자열 값을 사용한다는 것입니다. 따라서 당신의 단일 문자열 속성 제안이 효과가 있다고 생각하지 않습니다.

대안이의 항목 일정에 검색하고, 사용자 ID의 컬렉션 사용자 에 걸쳐되지를 검색 한 후 해당 세트에서 사용자 ID를 얻을합니다. 그것은 하나가 아니라 두 개의 쿼리를 의미하지만, 조금 더 분명하고 조금 덜 복잡합니다.