0

以下のsqlfiddleに示されているように、「ブランド」と「電話」の2つのテーブルがあります

http://sqlfiddle.com/#!2/6da79

brands(id, brand) 
phones(id, brand_id, phone)

基本的に、ユーザーが「Sony Ericsson」と入力すると、そのブランドのすべての電話が表示される検索を最適に実装する方法を知りたい..しかし、検索用語「Sony Ericsson Xperia」を入力すると、 LIKE を実行して、「Xperia P」と呼ばれる 1 つの電話を取得するのに十分なほど賢くなります。

ロジックは理解できます。データベースの最小フットプリントでこれを行うための最適な最適化された方法を見つけようとしているだけです。

私の疑似コードは次のようになります。

  1. 検索キーワード用語 (例: Sony) から、brands テーブルに対して LIKE クエリを実行します。
  2. 一致するものが見つかった場合は、そのブランドのすべての電話を表示します (例: Xperia P、W500)
  3. ユーザーが「Sony Ericsson Xperia」と入力した場合、クエリから「Sony Ericsson」を削除し、「Xperia」で同様のクエリを実行して「Xperia P」を返します。

これを行うための最も最適化された方法を推奨できる人はいますか?

4

4 に答える 4

0

http://sqlfiddle.com/#!2/fcb807

基本的に、次の方法をアドバイスどおりに使用しました-sqlfiddleを参照し、電話テーブルのIDにリンクされたクエリを実行するために別のテーブルを使用します。私はそれが理にかなっていることを願っています:-)ありがとう

于 2013-09-27T16:04:27.317 に答える