2010-03-11 3 views
2

Итак, я попросил моего руководства включить способ для пользователей отмечать страницы на моем сайте как «любимые» и отображать их в специальном списке. Этот сайт имеет статическую структуру (я не создаю страницы). Мне интересно, как лучше всего это сделать. Моя первая мысль заключалась в том, чтобы хранить его в базе данных (поскольку информация пользователя также хранится там), но я полагаю, что я мог бы также использовать свойства профиля ASP.NET. Есть ли другие способы, которые я не рассматривал? Как бы вы все это сделали?Как бы вы создали систему «Избранные страницы»

ответ

3

Я хотел бы использовать базу данных, главным образом, потому что я хочу, чтобы хранить список вещей с определенными свойствами (в частности, список URLS, с подробной информацией о названии страницы, пользователя, Избраных и т. Д.). Скорее всего, я хотел бы сделать что-то подобное в моей БД:

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

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

Если вы используете свойство профиля, вы сохранение списка ссылок для каждого пользователя, в основном в строке для каждого пользователя ((сериализовать?) так как хранятся свойства профиля ...). Если заголовок или URL-адрес одной страницы меняются, вам не удастся его обновить и отразить на всех страницах пользователей.

+0

Это * точно *, к письму, что я делал по этому вопросу. Замечательно, что я был на правильном пути! –

2

Скорее всего, вы получите более высокую производительность при хранении нескольких частей информации, чтобы сохранить это в отдельной таблице с помощью чего-то вроде UserId, PageUrl, PageTitle или чего-то подобного, чтобы информация была доступна сразу.

Это также дает вам централизованный доступ к общим ссылкам. Если вы удалите страницу из системы, вы можете быстро удалить ее из системы «Избранное».

+2

Не говоря уже о том, чтобы найти 10 лучших страниц. – Oded

+1

И тогда они захотят группировать и упорядочить порядок, и ... – JeffO

+0

Очень верно на обоих счетах! –

0

Я хотел бы получить базу данных. люди голосуют за страницы и помнят голоса, поэтому люди могут изменить свой голос. Итоговые суммы Calcualte и/или средние (в зависимости от математики голосования) и берут их оттуда.

Если вы говорите об одной пользовательской системе (не сопоставляя пользователей голосов с голосом пользователей B), вы можете использовать профиль mechainsm, так как в любом случае вы будете хранить небольшой список. То, что вы освобождаете, - это mecahnism, чтобы запросить их эффективно (как администратор).

Довольно во многом дизайнерское решение, основанное на личных предпочтениях. Аргументы, сделанные в обоих направлениях. Я, возможно, поеду с базой данных - в свете более легкого обслуживания и последующего расширения.

Смежные вопросы