我注意到現在看起來非常明顯的模式。 需要得到您對此的意見。關係模型中OneToMany關係性能的一般設計原則
假設在關係模型中具有表1到表2之間的一對多關係。 例如,表1可以是用戶表,表2可以是登錄所有用戶登錄的登錄表。一個用戶可以多次登錄。 給定一個用戶,我們可以找到該用戶的所有登錄。
想到的第一個想法是僅將登錄名存儲在登錄表中。這是設計之一。
但是,如果由於某種usecases我們感興趣的用戶的特定登錄(說上次登錄的)是「通常是個好主意」緩存在用戶表本身的最後登錄時間。 是嗎?
設計2顯然是多餘的,因爲我們總能找到通過執行加入,然後丟棄所有,但先前登錄上次登錄的時間。
對於一個用戶應該沒問題。但是如果你想爲所有的用戶找到一個SQL查詢的最後登錄時間,那麼設計1將涉及一個連接和一個子查詢來過濾不需要的結果。
但考慮到我們的用例,是去年的登錄時間存儲在用戶表本身,這將拯救我們從加入一個好主意。是對的嗎?
這是您在設計模式時看到的通用模式嗎?
我認爲當前會話ID通常用於跟蹤這一點。 – Aiias 2013-03-10 05:21:21
我剛剛用這個作爲例子,我指的是通用許多設計原則。另外,我想製作這個問題社區維基。 – 2013-03-10 05:24:20
您正在評估設計階段的性能方面。請記住,[過早優化是所有邪惡的根源](http://en.wikipedia.org/wiki/Premature_optimization#When_to_optimize) – 2013-03-10 05:43:29