初步完成博客系統的架構設計,功能設計和資料庫設計,博客系統的前臺界面和後臺界面目前正在設計中,待完成以後,就可以進入項目搭建和編碼階段了。 ...
一.項目背景
1999年初,由於 Cameron與Jesse共同維護的博客站點列表既有趣又易於閱讀,吸引了很多人的眼球。在這種情況下,Peter Merholz宣稱:“這個新鮮事物必將引起大多數人的註意。作為未來的一個常用詞語,web-blog將不可避免地被簡稱為blog,而那些編寫網路日誌的人,也就順理成章地成為blogger“博客”。這代表著博客被正式命名。 8月份,Pyra發佈了Blogger網站,Groksoup也投入運營,使用這些企業所提供的簡單的基於互聯網的工具,博客站點的數量終於出現了一種爆炸性增長。1999年末,軟體研發商Dave Winer向大家推薦EditTh isPage網站,JefA .Ca mpbell發佈了Velocinews網站。所有的這些服務都是免費的,他們的目的也很明確:讓更多的人成為博客,來網上發表意見和見解。 隨著Blogging快速擴張,它的目的與最初的瀏覽網頁心得已相去甚遠。目前網路上數以千計的 Bloggers發表和張貼Blog的目的有很大的差異。不過,由於溝通方式比電子郵件、討論群組更簡單和容易,Blog已成為家庭、公司、部門和團隊之間越來越盛行的溝通工具,因為它也逐漸被應用在企業內部網路(Intranet)中。目前,BSP商家風 起雲涌,已有數十家大型博客站點。目前,國內優秀的中文博客網有:新浪博客,搜狐博客,中國博客網,騰訊博客,博客中國等。二.博客系統功能分析
1.系統提供非註冊用戶註冊、瀏覽其他已註冊用戶發佈的日誌、日誌分類信息、圖片詳情、相冊信息,查看日誌評論等功能。 2.除了提供非註冊用戶的所有功能外,系統向已註冊用戶提供後臺管理功能,註冊用戶可以瀏覽管理個人發佈的日誌、瀏覽和管理個人相冊、瀏覽和管理評論、瀏覽和管理個人信息、瀏覽和管理常用鏈接、瀏覽和修改個人登錄密碼、安全退出系統等功能。 3.系統具備日誌可視化文本編輯功能,使用百度編輯器對日誌內容進行錄入,可以方便的按照自己的佈局方式展示日誌內容。三.博客系統架構
1.功能列表
2.博客系統架構
2.1 mvc架構
MVC框架是由Model模型(JavaBean),View視圖(Jsp) 和 Controller控制器(Servlet)構成: (1).Model:承載數據,並對用戶提交請求進行計算的模塊。其分為兩類,一類稱為數據承載Bean,一類稱為業務處理Bean。所謂數據承載Bean是指實體類,專門承載業務數據的。而業務處理Bean則是指Service或Dao對象,專門用於處理用戶提交請求的。 (2).View:為用戶提供使用界面,與用戶直接進行交互。 (3).Controller:用於將用戶請求轉發給相應的Model進行處理,並將處理Model的計算結果向用戶提供相應響應。
2.2 ssm框架
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三個開源框架整合而成,常作為數據源較簡單的web項目的框架。 (1).SpringMVC:作為View層的實現者,完成用戶的請求接收功能。SpringMVC的Controller作為整個應用的控制器,完成用戶請求的轉發及對用戶的響應 (2).MyBatis:作為 Dao層的實現者,完成對資料庫的增、刪、改、查功能。 (3).Spring:以整個應用大管家的身份出現。整個應用中所有的Bean的生命周期行為,均由Spring來管理。即整個應用中所有對象的創建、初始化、銷毀,及對象間關聯關係的維護,均由Spring進行管理。四.資料庫設計
1.設計需求及要求
根據需求,共設計了7張表,分別為t_user(用戶表),t_album(相冊表) ,t_category(日誌分類表),t_comment(日誌評論表),t_journal(日誌表),t_link(常用鏈接表),t_photo(圖片詳情表)這7張表的設計嚴格按照資料庫的規範,儘可能符合符合以下要求。 (1)數據的完整性:保證資料庫中存取數據準確、完整、數據更新的一致性。 (2)數據的結構化:設計層次分明,分佈合理。在滿足系統所需功能的前提下,在設計時可以考慮基本表的個數越少越好,主鍵的個數越少越好,欄位個數越少越好。 (3)減少數據冗餘:一方面資料庫系統應該儘量減少數據冗餘,節省存儲空間。另一方面,還要考慮適當的冗餘,以提高系統的運行 速度和後臺邏輯開發速度。2.資料庫架構
3.資料庫表結構
(1)t_user 用戶表
CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用戶編號', `username` varchar(64) NOT NULL COMMENT '用戶名', `password` varchar(128) NOT NULL COMMENT '密碼', `nickname` varchar(255) DEFAULT NULL COMMENT '昵稱', `email` varchar(64) DEFAULT NULL COMMENT '註冊郵箱', `sign` varchar(255) DEFAULT NULL COMMENT '個性簽名', `name` varchar(36) DEFAULT NULL COMMENT '真實姓名', `sex` varchar(12) DEFAULT NULL COMMENT '性別', `phonenumber` varchar(36) DEFAULT NULL COMMENT '手機號碼', `address` varchar(64) DEFAULT NULL COMMENT '家庭住址', `upload` varchar(64) DEFAULT NULL COMMENT '頭像', `registime` date DEFAULT NULL COMMENT '註冊時間', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8用戶表sql
(2)t_journal 日誌表
CREATE TABLE `t_journal` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '日誌id', `title` varchar(128) DEFAULT NULL COMMENT '日誌標題', `categoryid` int(11) DEFAULT NULL COMMENT '日誌所屬日誌分類id', `content` text COMMENT '日誌內容', `createtime` date DEFAULT NULL COMMENT '日誌創建時間', `userid` int(11) DEFAULT NULL COMMENT '日誌所屬用戶id', `readtimes` int(11) DEFAULT NULL COMMENT '日誌閱讀次數', `commentime` int(11) DEFAULT NULL COMMENT '日誌評論次數', `abstract` varchar(255) DEFAULT NULL COMMENT '日誌摘要', PRIMARY KEY (`id`), KEY `userid` (`userid`), KEY `categoryid` (`categoryid`), CONSTRAINT `t_journal_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`), CONSTRAINT `t_journal_ibfk_2` FOREIGN KEY (`categoryid`) REFERENCES `t_category` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8日誌表sql
(3)t_category 日誌分類表
CREATE TABLE `t_category` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '日誌分類id', `categoryname` varchar(64) DEFAULT NULL COMMENT '日誌分類名稱', `userid` int(11) DEFAULT NULL COMMENT '日誌分類所屬用戶id', `count` int(11) DEFAULT NULL COMMENT '日誌分類下日誌個數', PRIMARY KEY (`id`), KEY `userid` (`userid`), CONSTRAINT `t_category_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8日誌分類表sql
(4)t_album 相冊表,分類管理圖片
CREATE TABLE `t_album` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '相冊id', `userid` int(11) DEFAULT NULL COMMENT '相冊所屬的用戶id', `count` int(11) DEFAULT NULL COMMENT '該相冊下照片的個數', `name` varchar(255) DEFAULT NULL COMMENT '相冊名稱', `createtime` date DEFAULT NULL COMMENT '創建相冊的時間', `describe` text COMMENT '相冊描述', PRIMARY KEY (`id`), KEY `userid` (`userid`), CONSTRAINT `t_album_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8相冊表sql
(5)t_comment 評論表
CREATE TABLE `t_comment` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '評論id', `content` text COMMENT '評論內容', `userid` int(11) DEFAULT NULL COMMENT '發表評論用戶id', `journalid` int(11) DEFAULT NULL COMMENT '發表評論所屬日誌分類id', `createtime` date DEFAULT NULL COMMENT '發表評論的時間', `state` int(11) DEFAULT NULL COMMENT '評論狀態 0審核通過 1審核不通過', PRIMARY KEY (`id`), KEY `userid` (`userid`), KEY `journalid` (`journalid`), CONSTRAINT `t_comment_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`), CONSTRAINT `t_comment_ibfk_2` FOREIGN KEY (`journalid`) REFERENCES `t_journal` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8評論表sql
(6)t_photo 圖片詳情表
CREATE TABLE `t_photo` ( `id` int(11) NOT NULL COMMENT '圖片id', `describe` varchar(255) DEFAULT NULL COMMENT '圖片描述', `path` varchar(255) DEFAULT NULL COMMENT '圖片訪問地址', `createtime` date DEFAULT NULL COMMENT '圖片上傳時間', `userid` int(11) DEFAULT NULL COMMENT '圖片所屬用戶id', `albumid` int(11) DEFAULT NULL COMMENT '圖片所屬相冊id', PRIMARY KEY (`id`), KEY `userid` (`userid`), KEY `albumid` (`albumid`), CONSTRAINT `t_photo_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`), CONSTRAINT `t_photo_ibfk_2` FOREIGN KEY (`albumid`) REFERENCES `t_album` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8圖片詳情表sql
(7)t_link 常用鏈接表
CREATE TABLE `t_link` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '常用鏈接id', `name` varchar(128) DEFAULT NULL COMMENT '常用鏈接名稱', `url` varchar(128) DEFAULT NULL COMMENT '常用鏈接url地址', `userid` int(11) DEFAULT NULL COMMENT '常用鏈接所屬用戶', PRIMARY KEY (`id`), KEY `userid` (`userid`), CONSTRAINT `t_link_ibfk_1` FOREIGN KEY (`userid`) REFERENCES `t_user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8常用鏈接表sql