新聞發布系統:需求分析以及項目的設計


項目概述

新聞發布系統是新聞媒體或者自媒體推送實時新聞,讓其他用戶或者游客閱讀的網站。主要實現功能:前台開放式的展示新聞列表,允許所有用戶、游客瀏覽,提供游客的登錄注冊功能,個人中心用戶可以對自己文章、評論的管理,增加文章等功能;后台實現管理員管理所有文章、評論的刪除、修改、編輯功能,實現對用戶的強制下線,刪除用戶等功能。

需求分析

1.用戶、游客可以任意的訪問新聞主頁各類型的文章信息,但是如果要進行評論游客需要進行登錄/注冊才能操作。

2.登錄注冊基礎功能。

3.用戶登錄后,可以發表文章,在個人中心可以對自己文章,評論的管理。

4.文章主頁點擊顯示文章內容。

5.管理員在后台管理所有的文章、評論的刪除、修改等。

6.管理員在后台管理普通用戶的賬號:對普通用戶的強制下線,刪除用戶賬號等。

7.登錄:需要檢測登錄狀態,防止同一賬號多次登錄。

8.忘記密碼,根據郵箱找回密碼。

實現效果

1.用戶注冊

 

2.用戶登錄

3.管理員登錄

 

4.新聞主頁

 

5.后台主頁

6.新增新聞

7.編輯新聞

8.詳情內容頁

9.評論區

 

數據庫設計

1.user表(用戶表):user_id(用戶Id),user_type(用戶類型),user_password(用戶密碼),user_email(用戶郵箱),user_age(用戶年  齡),create_time(用戶創建時間)。

  注:該用戶表的user_type類型的值 0:表示普通用戶,1:認證用戶,2:管理員。user_eamil是用來找回密碼的。

 

字段

數據類型

是否為空

備注

user_id

bigint

not null

key

user_name

varchar(225)

not null

用戶名

user_password

varchar(225)

not null

密碼(使用md5加密)

user_email

varchar(40)

not null

郵箱(用來找回密碼)

user_age

int

 

用戶年齡

create_time

timestamp

not null

創建時間

 

2.news表(新聞表):new_id(新聞id),category_id(類別id),user_id(作者),title(標題),content(內容),create_time(創建時間),key_words(新聞關鍵字)

注:在數據庫設計的時候最好不要使用外鍵,原因很簡單,因為到時候刪除表的時候會導致一系列麻煩事情,不利於開發。

所以一般不設置外鍵,到時候只是建立連接查詢即可。

字段

數據類型

是否為空

備注

new_id

bigint

not null

key

category_id

bigint

not null

類型Id

user_id

bigint

not null

作者Id

title

varchar(225)

not null

文章標題

content

text

not null

文章內容

create_time

timestamp

not null

創建時間

key_words

varchar(125)

not null

關鍵字

 3.comment表(評論表):comment_id表id,new_id所評論新聞的id,user_id評論者的id,content評論內容,create_time創建時間。

字段

類型

是否為空

備注

comment_id

bigint

not null

表id key

new_id

bigint

not null

新聞id

user_id

bigint

not null

評論者id

content

text

not null

內容

create_time

timestamp

not null

創建時間

 

4.category表(類別表):category_id表id,category_name 類別名

字段

類型

是否為空

備注

category_id

bigint

not null

key

category_name

bigint

not null

類別名

 功能模塊設計

注冊功能設計

在注冊頁面,首先在前端對用戶輸入的數據的合法性的檢驗,較少后端的訪問次數;在后端,我們采用Redis做有個二級緩存,用來存儲已經注冊的用戶信息,用戶注冊的時候首先檢測緩存中是否存在,如果不存在再在數據庫中檢測(如果數據庫中的全部注冊信息都在緩存中,那么可以不用這一步,但是如果redis掛掉了這種情況)。一切合法再進行注冊。

使用Redis緩存的好處:如果在傳統的情況下,注冊的時候直接檢測數據庫里的數據,在高並發的情況下,兩個用戶同時注冊數據庫中不存在的字段,數據庫中會出現兩條數據用戶名相同的數據,但是使用二級緩存就可以避免這個問題。

 

登錄功能設計

在login頁面,用戶輸入數據,首先js驗證數據是否出錯,不出錯就發送到后台。在后台第一步在application查找登錄信息,判斷該用戶是否已經登錄,如果已經登錄,提示不能登錄。然后在redis中驗證登錄字段,如果redis中沒有找到該字段,那么再數據庫中查詢驗證登錄字段,如果數據庫都沒有那么提示用戶或者密碼錯誤。

 

 后台頁面設計

后台列表首先顯示相應的數據,和相應的操作。

 

新聞主頁設計

 

 結語

初步對這個項目的需求分析和數據庫、頁面功能的設計。

然后附上我這個項目的githhub地址:https://github.com/fireshoot/YxNews。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM