2009-08-28 14 views
0

我々は、70のプロパティに近い大きな検索インターフェースを構築しています。これらのプロパティのほとんどはブーリアン(0または1を保持する)で、約12はint値を持ち、いくつかは文字列です。検索フォームのURL構造

goal: http://www.example.com/q/test_search/fdgREGd3vfS323 
want to avoid: http://www.example.com/q/test_search/?val_12=1000&val_120=0&val_4=XY.... 

私たちの目標は、このように、単にURLを覚えることで、正確な検索データを送信/保存することが可能となる、すべての検索プロパティを保持する短いURLを持つことです。

私はこれがすべてurl文字列の多くのパラメータで実行できることは知っていますが、私の上司は永続的です。一つの変数を表す各位置のバイナリ表現(00010101011)に

マップ値:

我々は、ブール値を表現する方法を考え出しました。この文字列は、例えば、以下のように、より短い対応物(AB)にコード化される。 16進数

しかし、値を保持するプロパティについては、どのように手続きをとるか決めることはできません。何か案は?

+0

人々は任意のバイナリ文字列のプレースホルダを覚えていません。指定されていないパラメータのデフォルト値を単純に考慮し、ウェブ上の他の場所で既に使用されているパラメータエンコーディングスキームを使用し、ホイールを再作成しないでください。 –

+0

値を保持するプロパティ...文字列を保持するプロパティを意味すると仮定していますか? – ryeguy

+0

プロパティカラーの選択ボックスを提供します。ユーザーは値を選択します。 20(カラーID)。私たちの意図は、ユーザーがURLを変更できるわけではなく、まともな、好ましくはコード化されていることではありません。 – gregor

答えて

2

さらに簡単にすることができます。データベースが問題でない場合は、databseの人々の検索を保存し、そしてこのようないくつかの種類のURLを配ることができます。

user_searches: 
search_id | prop1 | prop2 | prop3 | .... | propN 

と、ユーザーは次のようにURLを与える:

http://example.com/search/(search_id) 

ユーザーのエンドポイントから何が起こっているのか見えないので、URLを短くして、使いやすさのためにサイトを最適化するために、人々が何を探しているのかを簡単に追跡できます。

[edit] さらに、(search_id)にハッシュを使用すると、他のユーザーが簡単に推測することはできません。

+0

素晴らしいアイデアは、この考えを与える必要があります。 – gregor

0

値が有限で静的である場合は、数値を割り当てます。

可能性のあるすべての検索パラメータの組み合わせが有限の場合は、すべてをハッシュし、そのハッシュを安らかなURLパラメータとして使用するオプションもあります。

+0

URLの長さのためにこのオプションを却下しました – gregor