1

我想为我的 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 表”中创建一个附加条目</p>

表 1:最新消息

id、contentId、createdDate

表2:

用户 ID、内容 ID

当用户查看一段内容时,表 2 中会添加一个条目(用户的 id 和内容)。

上面的视图由以下人员创建:

1) 从 WhatsNew 表返回在表 2 中没有针对特定登录用户的条目的 contentIds,按创建日期排序。

然后我要求我的 newsManager、gigsManager 等根据这些 id 给我摘要内容。我可以传递所有 id,即使它们可能代表不同类型的内容,因为 contentid 是 guid,我假设我的表不会发生任何冲突(我只有一个 db)。或者,我可以使用某种鉴别器......

所有摘要对象都实现了 ISummary,并且还可能包含定制数据。所以我现在有一个列表,我将它传递给一个视图......</p>

每个摘要类型都有一个知道如何呈现它的局部视图。用于呈现特定项目的部分将根据摘要类型进行选择。(请注意,列表将包含不同类型的摘要......

请注意,我不希望 WhatsNew 表实际包含诸如“Rick is going to Songs for the bathtub on Thursday, 28 June 2009”之类的标题字符串,因为这会使

  1. 改变我生成这些的方式——即我可能会根据用户的位置对它们进行不同的表述。

  2. 国际化日期等。

这也意味着生成标题的 newsManager/gigsManager 需要有关网站路由的知识..

例如标题“Rick is going to Songs for the bathtub on Thursday, 28 June 2009”包含多个链接!!

想法?这看起来合乎情理吗?感觉很恶心。

4

1 回答 1

-1

我会跳过桌子。

向各个部分询问他们最近的内容,并显示前 15 名或其他内容。每个部分都将实现一个接口,用于如何显示消息的数据,并且可以在运行时计算。是的,我会为所有内容使用 ID,而不是生成的标题/消息。

除非您将这些标记为每个用户已读/已查看,否则我也不会打扰用户内容关联表。

于 2009-06-10T17:22:08.250 回答