你会如何制作一个“收藏页面”系统

时间:2010-03-11 14:44:02

标签: c# asp.net sql-server profile favorites

所以我的管理层要求我为用户添加一种方式,将我网站上的网页标记为“最喜欢的”,并将它们显示在特殊列表中。这个站点有一个静态结构(我不生成页面)。我想知道最好的方法。我的第一个想法是将它存储在数据库中(因为用户信息也存储在那里),但我想我也可以使用ASP.NET的Profile属性。还有其他方法我没考虑过吗?你们都会怎么做?

3 个答案:

答案 0 :(得分:3)

我使用数据库,主要是因为我想用某些属性存储列表 (具体来说, url 列表>,详细介绍页面标题收藏的用户等)。我很可能在我的数据库中做了类似的事情:

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

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

如果使用配置文件属性,则维护每个用户的链接列表,基本上是每个用户的(序列化?)字符串(这就是配置文件属性的存储方式......)。如果一个页面的标题或网址发生变化,则无法对其进行更新并将其反映在所有用户的页面上。

答案 1 :(得分:2)

当存储多条信息以便将其存储在具有UserId,PageUrl,PageTitle或类似内容的单独表格中时,您很可能会获得更好的性能,以便一次性获取所有信息。

这也使您可以集中访问公共链接,如果从系统中删除页面,则可以从“收藏夹”系统中快速删除它。

答案 2 :(得分:0)

我会选择数据库。让人们投票支持页面并记住投票,这样人们就可以改变投票方式。计算总计和/或平均值(取决于投票机制)并从那里获取。

如果您谈到单个用户系统(不将用户A投票与用户B投票相关联),您可以使用配置文件mechainsm,因为您仍会存储一个小型列表。你放松的是有效地查询那些(作为管理员)的机制。

很大程度上是基于个人喜好的设计决定。论点可以在两个方向上进行。我可能会使用数据库 - 考虑到更容易维护和以后的扩展。