2009-09-06 43 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