2009-08-28 6 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)에 인코딩 된이 문자열을 전달합니다. 마녀.

하지만 값을 보유하는 속성에 대해서는 프로 시저 수행 방법을 결정하지 않습니다. 어떤 아이디어?

+0

사람들은 임의의 2 진 문자열에서 place-holder를 기억하지 않을 것입니다. 지정되지 않은 매개 변수에 대한 기본값을 간단히 가지고 고려하고 웹에서 이미 사용 된 매개 변수 인코딩 체계를 사용하고 바퀴를 재발 명하지 마십시오. –

+0

값을 보유하는 속성 ... 문자열을 보유하는 속성을 의미한다고 가정합니다. – ryeguy

+0

우리는 속성 색에 대한 선택 상자를 제공 할 것이며, 사용자는 값을 선택할 것입니다. 20 (컬러 id). 우리의 의도는 사용자가 URL을 수정할 수있는 것이 아니라 알맞게 인코딩 된 것입니다. – gregor

답변

2

더 간단하게 만들 수 있습니다. 데이터베이스가 문제가 아닌 경우, 데이타베이스에있는 사람들의 검색을 저장하고,이 같은 몇 가지 종류의 URL을 알려주지 수 있습니다

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

와 사용자가 url로 제공 같은 :

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

나는이 방법을 사용하는 것이 더 바람직하다. 왜냐하면 사용자의 종말점에서 무슨 일이 일어나고 있는지, URL이 짧아지기 때문이다. 유용성을 위해 사이트를 최적화하려는 경우 사람들이 찾고있는 것을 쉽게 추적 할 수있다. :).

[편집] 추가로 (search_id)에 해시를 사용할 수 있으므로 다른 사용자가 검색을 쉽게 추측 할 수 없습니다.

+0

좋은 아이디어는이 아이디어에 약간의 생각을 주어야합니다. – gregor

0

값이 유한하고 정적 인 경우 숫자를 할당하십시오.

가능한 모든 검색 매개 변수의 조합이 유한 한 경우 모든 것을 해시하고 적절한 해시 값 매개 변수로 해당 해시를 사용하는 옵션이 있습니다.

+0

URL에 대한 이유 때문에이 옵션을 무시했습니다. – gregor