我想为我的asp.net mvc应用程序创建一个Facebook风格的“whats new”视图。
这可能会生成诸如......
之类的内容* Ciaran sent a message to The Rise and Fall of the Rockets
* Rick is going to Songs for the bathtub on Thursday, 28 June 2009
* Col became a fan of The Rise and Fall of the Rockets
* Leeroy posted Busk To Beat Cancer
* Tom went to HMV Showcase on Friday, 19 May 2009
他是目前在我脑海中的方法......
这些项目中的每一项都代表不同类型的内容。
例如,演出,新闻,评论等
每种内容类型都存储在不同的数据库表中,即演出,新闻,评论等:
当新内容添加到应用程序时(例如创建新闻报道)我计划在“WhatsNew表”中创建一个额外的条目
表1:WhatsNew
id,contentId,createdDate
表2:
userId,contentId
当用户查看了一段内容时,表2中添加了一个条目(用户ID和内容)。
上面的视图是由:
创建的1)从WhatsNew表中返回contentIds,该表没有表2中针对特定登录用户的条目,按创建日期排序。
然后我问我的newsManager,gigsManager等根据这些ID给出摘要内容。我可以传递所有ID,即使它们可能代表不同类型的内容,因为contentids是guids并且我假设我不会在我的表中遇到任何冲突(我只有一个db)。或者,我可以使用某种类型的描述符......
所有摘要对象都实现了ISummary,也可能包含定制数据。所以我现在有一个List,我将其传递给一个视图...
每个摘要类型都有一个部分视图,它知道如何呈现它。将根据摘要类型选择用于呈现特定项目的部分..(请注意,列表将包含不同类型的摘要...。
请注意,我不希望WhatsNew表格实际上包含标题字符串,例如“Rick将于2009年6月28日星期四进入浴缸的歌曲”,因为这将使其难以
更改我生成这些内容的方式 - 也就是说,根据用户的位置,我可能会对它们进行不同的说明。
国际化日期等。
这也意味着说生成标题的newsManager / gigsManager需要有关网站路由的知识..
例如标题为“Rick将于2009年6月28日星期四前往浴缸的歌曲”中包含多个链接!!思考?这看起来合情合理吗?感觉好奇。
答案 0 :(得分:-1)
我会跳过表格。
询问各个部分的最新内容,并显示前15名或其他内容。每个部分都将实现一个界面,用于显示消息的数据,并可在运行时计算。是的,我会将ID用于所有内容 - 而不是生成的标题/消息。
除非您将这些标记为每个用户阅读/查看,否则我也不会打扰用户内容关联表。