Как бы вы создали систему «Избранные страницы»? - PullRequest
2 голосов
/ 11 марта 2010

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

Ответы [ 3 ]

3 голосов
/ 11 марта 2010

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

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

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

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

2 голосов
/ 11 марта 2010

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

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

0 голосов
/ 11 марта 2010

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

Если вы говорите об однопользовательской системе (не соотносящей голоса пользователя A с голосами пользователя B), вы МОЖЕТЕ использовать механизм профиля, так как вы все равно будете хранить небольшой список. Что вы потеряете, так это механизм эффективного запроса (от имени администратора).

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

...