0

このような週の空き状況/スケジュールをアプリに実装する必要があります。各ユーザーには、独自の週の空き状況があります。

週間スケジュール

データベースにクエリを実行し、特定のスロットで利用可能なユーザーを見つけることができるようにする必要があります。モデルに 7x7 = 49 のブール値属性を直接実装できると思いましたが、それはあまりクリーンなソリューションではないと感じています!

私が直面している他の問題: Thinking_sphinx gem を使用して、ファセット ナビゲーションを使用してこのコンテンツ (および他の属性も) にインデックスを付けてクエリを実行したいと考えています。まだ本当かどうかはわかりません。

たとえば、「Mo1 Mo2 Mo3 ..... Th1 Th6 Th7 Fr1 ..... Su7」を含む 49 個のブール属性または 1 つの文字列属性を使用する方がよいと思いますか?

または他の解決策はありますか?

4

1 に答える 1

1

最初に注意すべきことは、文字列属性 (フィールドとは対照的に) はフィルターで使用できないことです。単一の文字列属性の提案がうまくいきます。

別の方法として、スケジュールのアイテムを検索し、そのセットからユーザー ID を取得してから、そのユーザーID のコレクションに含まれていないユーザー全体を検索します。これは 1 つではなく 2 つのクエリを意味しますが、もう少し明白で、少し複雑ではありません。

于 2013-09-29T09:37:12.673 に答える