2009-09-06 48 views
0

我使用TOXI解决方案在本网站标注书签:用asp.net mvc的标签DB - 控制器与模型问题

http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html

在控制器,我有一个LinkController类

class LinkController 

ActionResult AddNewLink(FormCollection collection_) 
ActionResult Index() 

在模型,我有一个LinkRepository:

class LinkRepository 

void AddLink(string url, string description, string[] tags) 
WebLink[] GetLinks(string[] tags) 
WebLink[] GetLinks() 

我也有一个标签库类:

class TagRepository 

string[] GetTags() 

我的问题是,当我要添加新的链接,我需要更新标签表,我想,要进行优化。要做到这一点,我需要缓存标签的地方,我不会浪费时间在数据库试图添加已存在的标签。我所说的缓存这些标签:

A.具有LIinkRepository对实例
B.具有LinkController缓存参考标签库和缓存它(这种感觉怪怪的,因为它会再转换标签到一个较小的集不存在的标签)
C.其他选项?

回答

2

开始通过无缓存工作,直到你知道你编辑是正确的方法等,根据您的应用程序的使用,缓存甚至可能不是必要的数据...

如果事实证明你的应用程序做性能不够好,请从存储库中缓存开始。这是数据库调用将是最大的性能杀手,你不应该超过储存库去缓存(是的,我只是发明了这个词)。如果仍然遇到性能问题,请在控制器上缓存。

+1

同意,preamture优化是万恶之源;) – 2009-09-06 12:39:16