如何架設一個新聞系統呢?一個完整的新聞系統不僅僅只包括供浏覽的新聞界面,它還包括許多功能的控制和後台管理的強勁功能.
那麼這些功能內的子功能又如何調度分配呢?下面就來介紹一下各功能的調配控制.新聞系統的實現是簡單的,但也可以說是非常復雜的.
新聞系統可分為三大部分:管理員登入系統,新聞管理系統,用戶浏覽系統.整個過程是簡單的:
1.管理人員發布新聞-->數據庫-->用戶浏覽新聞
2.發現問題-->登入管理系統-->編輯修改新聞
以上流程看似簡單,但實現起來卻並不是那麼簡單,這是個系統的開發,遠比留言版的實現要復雜,但基本運作原理又與留言版相同.在新聞發布系統的重中之重又在於數據庫的規劃和管理系統的實現.
現在來新聞都有些什麼內容:新聞分類,信息本體.
在數據庫包函這兩項內容於一個數據表內是可以實現的,但不經濟,因此我們可用兩個數據表來分別存儲內容,一個專門存儲新聞的分類,而另一個用來存儲信息的本體.如何調用實現雙表內容的共享呢?運用表關聯來實現這個問題(這裡並不介紹這方面的知識,讀者可自行參考數據庫相關的知識內容,靠自己努力得來的知識最有價值,不是嗎?)
下面要介紹的是管理功能的實現:
1.首先是新聞的發布
這是一系列的提交表單共同組成的,而這裡又分兩類,創建新聞分類和發布新聞;創建完新聞分類,然後再在各個分類中發布相關的新聞,很簡單嘛!並不是這樣的,想想所有的信息本體全都集中在一個數據表裡,如何區分信息的分類,上面提到的表關聯在這就非常重要了,當然也可不用這種方法,為每個分類創建一個獨立的表也能解決問題,可是這樣劃算嗎?維護性和可擴展性有如何呢?
新聞分類和信息本體的相關調用引起了麻煩,對了,解決之道就是活用表關聯.
2.編輯,修改,刪除的問題
這是 php+mysql 知識的基本運用,實現這些功能並無困難,這裡不作過多的介紹,只是要注意的是更改或刪除一個分類時,該如何處理該分類下的信息本體呢?由於使用表關聯,處理這些功能如同是在一個表內處理一般.
3.多工處理
但許多人在同時編輯一條新聞時會出現什麼情況呢?情況就數據庫只會存儲最後編輯的內容,這種情況發生將意味著前面修改的人的辛苦白費了,多功處理就是解決這個問題的,采取的方法是先入為主的,即先進入編輯的擁有編輯權限,而後進入的只擁有浏覽的權限直到編輯完成為止.這個功能很象 linux 的權限控制,不是嗎?
完成這個功能可用幾種方法:1.用 cookie 來控制,2.在表內增加權控字段.當然用 cookie 更加簡單些,cookie 實現的方法和流程是這樣的:
當有管理員進入編輯,設置 cookie ,編輯功能的程序段則判斷 cookie 值,為空允許編輯,非空則拒絕編輯,退出編輯時則將 cookie 清空,如此循環往復;多工功能是個有效的功能,至少能減少時間上和人力上的浪費.
新聞浏覽功能的實現很簡單,加上翻頁功能(本站已經介紹過了),強大的新聞系統基本完成,似乎少了個很重要的功能,不錯就是搜索引擎,這個功能將會在以後詳細介紹.