개발 Q&A

제목 네이버 검색어
글쓴이 템포 작성시각 2012/10/23 10:46:46
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 17111   RSS
요즘에 메일 확인하면서 네이버 로그인하고 검색을 하게 되면
자신이 로그인 한 후, 검색했던 검색어들이 나오잖아요

이런 로직을 한번 연습삼아 만들어 볼 생각인데요

그 검색어 저장도 시간상으로 정렬이 되더라구요

우선

유저테이블, 유저검색어저장테이블 .. 음

같은 유저가 여러명일수는없으니, 유저테이블에 기본 유저정보를 넣고
유저검색어저장테이블에 (유저 ID , 검색어 , 검색시간)으로 해서 유저ID, 검색어를 PK로 같이 묶으면 될까요??

그래서 검색창에 KeyPress이벤트가 들어갔을 때, 검색어 저장한 순이 시간별로 10개정도씩 보여지게 한다던가...

생각은 이런데 제가 DB구조를 잘몰라서 .. 이렇게 잡고 시작하면될까요?
 다음글 이게 왜 안되는걸까요? 뷰 전환~ (2)
 이전글 웹서버(APM) 에서 주변 장치를 컨트롤 할수 있나요? (2)

댓글

한대승(불의회상) / 2012/10/23 12:25:28 / 추천 0
구조 잘 모르신다고 하시면서도 로직은 잘 잡으신거 같은데요.. ^^
변종원(웅파) / 2012/10/23 12:37:31 / 추천 0
유저id, 검색어 PK로 잡고

a라는 유저가 'b' 검색어로 또 검색했을 경우 문제가 생길 수 있습니다.

시간까지 같이 묶거나 유저 id에만 pk 주거나 해야합니다.
템포 / 2012/10/23 13:01:07 / 추천 0
불의회상 // 감사합니다~

웅파 // 만약 유저 id에게만 PK를 주게 되면 한 유저가 하나의 검색어 밖에 가지질 못하지 않나요?
PK가 유저 아이디일 경우에만 있으면 a유저는 b검색어로 셋팅되어있다가 c로 검색할경우 c로 업데이트....음..
이런식으로 해도 될것같긴하지만 이전 검색어를 목록으로 보여주려면 시간도 같이 묶어야할거같은생각이..

음 아무래도 시간까지 같이 묶는 방법이 제일 나을 것 같네요

아니아니, 유저아이디+검색어로 키를 잡아놓고 만약 그 유저에 같은 검색어가 들어오면 시간을 업데이트 시키는 방법은 어떤가요 ???


지훈임돠 / 2012/10/23 15:42:29 / 추천 0
템포 // 시간까지 묶어 PK로 설정하는 방법과 시간을 업데이트 하는 방법의 차이는
목적이 어디까지인가 차이일꺼같아요.
말씀하신것처럼 최근검색어 10개정도 뿌려주는 기능만 구현한다고 하면, 어떤 방식을 쓰던 상관이 없을꺼 같구요.
업데이트 하는 방법의 경우 히스토리가 덮어지기 때문에 검색어 히스토리를 이용해 무언가 해보려고 한다면 문제가 되겠네요.
변종원(웅파) / 2012/10/23 16:08:13 / 추천 0
템포/ 잠시 착각을 했네요. 전 보통 no 필드에 자동증가 값을 주고 작업하는터라 유저id랑 그걸 헷갈렸네요.
말씀하신대로 셋다 주어야겠네요.
템포 / 2012/10/23 17:32:30 / 추천 0
지훈임돠 , 웅파 // 답변 감사합니다
참고해서 잘 사용하겠습니다~
템포 / 2012/10/23 17:59:58 / 추천 0
데이터목록은 제가 필요한 부분만 다 가져오는데. 네이버처럼 포커스나, 마우스 클릭시
검색어아래부분에 검색어가 뜨게하는게 jquery쪽 아닌가요 ?
어떻게 저런 부분을 썻는지 잘 알수가 없네요 ㅠ; 클릭시 css를 다 포함해서 만든 작업인지,
아니면 jquery에 저런 기능이 있는건지...
변종원(웅파) / 2012/10/23 18:54:40 / 추천 0
jquery suggestion search 검색하시면 참고할 소스 많습니다.
템포 / 2012/10/24 08:20:51 / 추천 0
웅파님 답변감사합니다 잘 사용하겠습니다