1、論壇是什么?論壇與貼吧有什么區別?
簡單的說論壇和貼吧都是發表言論和討論的一個平台。
貼吧是論壇的一個部分。
2、關於論壇模塊的需求分析?
首先我們看看論壇的幾個設計頁面:
這個主要是論壇的版塊設計:基本功能是增刪改查和上下移動功能的實現。
當我們設計實體的時候,很容易設計id,name,description字段,上下移動這個屬於隱含字段,通過分析上下移動的功能在實體中設計position位置屬性。
后面相信介紹下實體該如何設計。
第二塊:
通過上面幾個頁面我們分析得到:
(1)論壇管理模塊:主要負責版塊的CRUD管理和上下移動
(2)論壇模塊:首先顯示版塊列表,每個版塊有多少主題的數量,有多少文章(主題+回復)數量,最后一個發表帖子的是哪個。(顯示版塊列表)
其次:當點擊某個版塊時,顯示這個對應的這個版塊有多少個主題,主題的作者、回復和最后回復(顯示每個版塊對應的主題列表)
當點擊發新帖時候,我們會創建一個新的帖子。(創建新帖子)
當點擊某個主題的時候,我們會看到針對某個主題的回復帖子。(顯示每個主題的回復列表)
當點擊回帖的時候,可以針對這個主題進行回復。(回帖創建)
(3)管理員可以針對不符合要求的主題進行修改刪除。
概括:
整個論壇管理按照操作的主體可以分為:管理員操作的和用戶操作的。
其實根據上面的功能分析沒有多少,但個人感覺論壇管理模塊的難點在於:如何設計實體中的特殊字段。
(1)上下移動功能字段positon
(2)主題數量如何計算:主題的數量是發布的帖子的數量
(3)文章數量如何計算:文章的數量是主題的數量+回復的數量
(4)最后發表的主題:最后發表的主題是最新發表的帖子
(5)回復的數量:回復的數量是針對每個主題的回復的帖子數量
(6)最后發表的回復:最后發表的回復
(7)最后更新時間:這個更新時間可以分為:發表新帖的時間或者對帖子的新回復的時間
(8)帖子的排序問題:置頂帖(在最上面)、精華帖和普通帖按照狀態的更新時間來排序:如何將置頂帖分為一類,精華帖和普通帖為一類。這里使用了CASE WHEN THEN ELSE END 這個判斷語句。
(9)樓層的問題:1樓為沙發,2樓為板凳,3樓為地板。
利用status可以直接實現樓層數量增加,發表一個新回復就增加一樓。
<s:iterator value="#forumList" status="status">
這里面有status屬性:這里面封裝了很多東西:
status里面有first和last,還有count計數,利用這個計數可以實現樓層的增加。
3、論壇模塊的實體設計
關於實體的設計其實是在需求分析的時候進行的,所以說一個軟件的需求分析是很重要的。
大題分為幾步吧:
(1)確定有多少個實體(可以進行CRUD的就可以是一個實體)
(2)確定實體的屬性:
這個又細分為幾部分:
a: id主鍵不能忘;
b: jsp頁面(尤其是添加信息頁面是相對比較全面的,但是也有很多隱含信息);
c: 實體間的關系是怎么樣的:一對多,多對多,還是多對一,還是一對一。(至於單向關聯和雙向關聯這個不用太糾結。雙向關聯是在配置中兩邊都寫的,單向關聯是只寫一邊的配置。任何時候都可以是雙向關聯,如果不確定就使用雙向關聯,如果確定一方用不到就使用單向關聯)。另外一對一是多對一的一種特殊情形,只要加上unique這個屬性即可。
這些關系一般在實體的屬性中也要寫,多的話用set集合,一的話直接使用該類即可。
d: 還有一部分我們稱之為特殊字段:這類字段很不明顯,有時候在進行編寫代碼的時候才會發現,這個需要長時間的積累分析。
4、論壇中:用戶瀏覽、發帖、回帖功能設計
其實代碼寫多了就無非是增刪改查的變形記,只不過在業務上面如何進行條件查詢,如何在添加的時候考慮到額外的一些內容。這些還是需求分析的強大之處。
另外SQL的查詢也很關鍵,有時候為邏輯省去很多麻煩。所以要重視查詢。
5、FCKeditor的使用:
這個跟富文本編輯器的使用是一樣的:
(1)首先在頁面導入該編輯器的js文件,並且該編輯器使用的文件放到目錄下。
(2)找到該編輯器的幫助文檔;將一段js代碼拷貝到頁面
(3)注意:這里的路徑一定要配置正確。