我也简单谈下《Web应用的缓存设计模式》
拜读了Robbin的文章《Web应用的缓存设计模式》http://robbinfan.com/blog/38/orm-cache-sumup ,我觉得大体思想还是值得学习和借鉴的,借这机会顺便简单谈谈我一般的做法,基于它文章Blog的例子和场景。 以读取博客文章列表和文章为例 一、数据库设计 首先,从数据库设计上,我赞同Contents拆分出去,在显示列表时,是没必要读取完整内容的。但如果缓存应用得当,这个可以属于可选项,并非必须。按照我的习惯,表设计会如下: Blogs表,用以存储博客内容 BlogId int 用以存储博客内容,表主键,聚集索引 Title nvarchar(256) 博客标题 Content nvarchar(MAX) 博客内容 FormattedContent nvarchar(MAX) 格式化后博客内容,空间换时间,没必要消耗CPU去格式化markdown。可选项,也可以运算后放缓存 AuthorId int 和Accounts表关联 Author nvarchar(256) 作者,冗余字段,可以不必查询Accounts表 BlogDate datetime 博客发布时间 补充说明: 1. 适当冗余,例如FormattedContent和Author字段,减少跨表查询或CPU运算 2.