2016-10-19 18 views
0

私は、ユーザーがSQLの年齢、スキンカラー、言語、高さなどのプロパティに登録されているプロジェクトに取り組んでいます。検索条件を満たす検索条件

範囲値を受け入れる登録ユーザーに検索機能を提供したいと考えています。例15歳から20歳の間にユーザーを検索し、英語とフランス語を話すことができ、肌の色は黒です。また、このリクエストはSQLに格納する必要があります。

これを行う方法の1つは、 です。検索対象の属性に基づいて構築されたリクエストオブジェクトを提供します。 要求を読んだ後

searchUsersRequest : { 
"age" : { 
     "min" : 15 
     "max" : 20 
     }, 
"languages" : [ 
      "English", 
      "French" 
     ], 
"skinColor" : [ 
      "Brown", 
      "Black" 
     ], 
    . 
    . 
    . 
    . 
} 

のように、クエリを作成し、DB上で実行します。ここで

は二つの質問です:

  1. この問題を解決するための任意のより良い方法/一般的なアプローチはありますか?

  2. このリクエストオブジェクトをDBにどのように保存する必要がありますか?私はちょうど1つの文字列または他のより良い方法としてそれを保存する必要がありますか?

ご協力いただきありがとうございます。

答えて

0

1)クエリオブジェクトを作成するために必要なすべての情報を持つリクエストオブジェクトSearchUsersRequestがあるとしましょう。 ORMを使用している場合、このオブジェクトは生のクエリを作成するカスタムFilterBuilderまたはより複雑なQueryFilterによって "解析"できます。 一般的なアプローチについて言えば、「検索リクエスト」の機能をカスタムクラスの誇張に抽象化し、それを使ってFilterBuilderのメソッドの特定のパラメータを定義することができます。

2)なぜデータベースに保存する必要がありますか?これは一般的なアプローチではありません。しかし、必須の要件の場合はjson o xml表記を使用してオブジェクト構造を維持し、文字列(またはvarchar)をデータベースタイプとして使用することができます。あなたは、データベースからそれを取得するとき、あなたはこれがあなたに

+0

感謝アンドレアを助けることができるバック

希望リクエストオブジェクトを構築するために、それを解析する必要があります!私は今まで第二のアプローチで行くつもりです。 – user3089214