2010-03-11 4 views
2

내 경영진이 내 웹 사이트의 페이지를 "즐겨 찾기"로 표시하고 사용자를 특수 목록에 표시하는 방법을 사용자에게 요청했습니다. 이 사이트는 정적 구조를 가지고 있습니다 (저는 페이지를 생성하지 않습니다). 나는 그것을하는 가장 좋은 방법에 대해 궁금합니다. 내 첫 번째 생각은 사용자 정보가 거기에 저장되어 있기 때문에 데이터베이스에 저장하는 것이지만 ASP.NET의 프로필 속성을 사용할 수도 있다고 생각합니다. 내가 고려하지 않은 다른 방법이 있습니까? 어떻게 그걸 할거야?"즐겨 찾는 페이지"시스템을 만드는 방법

답변

3

나는 페이지 제목에 대한 자세한 내용과 특별히 특정 속성 (와 사물의 목록, URL을 목록, 즐겨 찾기 사용자를 저장할 주로하기 때문에, 데이터베이스를 사용하십시오 등). 대부분의 경우 내 DB에서 같은 것을 할 것 :

FavoritePages 
************* 
pageId (pk, int) 
title (string) 
url (string) 

Favorites 
********* 
userId (fk) 
pageId (fk) 

프로필 속성을 사용하는 경우, 각 사용자에 대한 링크 목록을 maintaing하고 기본적으로 각 사용자에 대한 문자열 (에 (직렬화?) 그 때문에 프로필 속성이 저장되는 방식입니다 ...). 한 페이지의 제목이나 URL이 변경되면이를 업데이트하고 모든 사용자의 페이지에 반영 할 방법이 없습니다.

+0

이것은 문자 그대로,이 시점까지 내가 한 일과 정확하게 일치합니다. 내가 옳은 길을 가고 있었다는 것을 알기 위해 위대한! –

2

UserId, PageUrl, PageTitle 또는 비슷한 정보를 별도의 테이블에 저장하여 정보를 모두 한 번에 사용할 수 있도록 여러 정보를 저장할 때 성능이 향상 될 가능성이 높습니다.

이렇게하면 일반 링크에 중앙 집중식으로 액세스 할 수 있으므로 시스템에서 페이지를 제거하면 "즐겨 찾기"시스템에서 신속하게 제거 할 수 있습니다.

+2

페이지의 상위 10 개 목록을 찾을 수 있음은 물론입니다. – Oded

+1

그리고 그들은 그룹화, 정렬 순서를 원할 것입니다. 그리고 ... – JeffO

+0

두 계정 모두에서 매우 사실입니다! –

0

나는 데이터베이스로 갈 것이다. 사람들이 페이지에 투표하고 투표를 기억하게함으로써 사람들이 투표를 변경할 수 있습니다. 총 계산 및/또는 평균 (투표 시스템에 따라 다름)에서 가져옵니다.

단일 사용자 시스템을 말하면 (사용자 A 투표와 사용자 B 투표를 연관 지을 수 없음) 어쨌든 작은 목록을 저장하므로 프로필 mechainsm을 사용할 수 있습니다. 느슨한 것은 효율적으로 (관리자로서) 질의하는 메카니즘입니다.

개인적 취향에 따라 크게 디자인을 결정했습니다. 인수 ca nbe가 양방향으로 작성되었습니다. 유지 관리가 용이하고 나중에 확장 될 수 있다는 점에서 데이터베이스와 함께 갈 것입니다.