以下內容僅摘錄部分:
如果由我們來設計主題表和回帖表,通常的做法是如下。
這樣在獲取主題列表時,直接使用分頁算法提取Topics;查看某一帖子時,還需要對Topics,Posts進行jion鏈接。
此種設計的缺陷為:
1. Topics表存儲Content的內容,其體積將會很大,對大體積表進行分頁,性能很慢。
2. 顯示Posts內容時將進行join操作,損耗性能
而Discuz的做法是進行如下設計。
將Topics裡的Content拆分到Posts中去,同時Topics的主題帖也作為回帖放置到Posts裡面,這樣就解決了上面我們提出的兩個問題。這是典型的違反數據庫設計范式以換取更好性能的示例。