博客系統項目搭建準備

来源:http://www.cnblogs.com/wzt-blog/archive/2017/12/16/8047829.html
-Advertisement-
Play Games

初步完成博客系統的架構設計,功能設計和資料庫設計,博客系統的前臺界面和後臺界面目前正在設計中,待完成以後,就可以進入項目搭建和編碼階段了。 ...


一.項目背景

  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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近這個月一直在趕項目開發,遇到的問題和學到的前端知識沒有更新到博客園,現在閑了下來,就整理一下前端知識。 在項目開發中,在樣式這方面花費的時間較多,因為針對於數字的變化特別多,本人不愛記數字,在看設計圖時總是反覆計算之間的數值,覺得很麻煩,偶然谷歌一下,發現了css3的一個屬性--calc() c ...
  • 前面的話 程式由大大小小的單一對象組成,所有這些對象都按照某種關係和規則來通信。當程式的規模增大,對象會越來越多,它們之間的關係也越來越複雜,難免會形成網狀的交叉引用。當改變或刪除其中一個對象的時候,很可能需要通知所有引用到它的對象。面向對象設計鼓勵將行為分佈到各個對象中,把對象劃分成更小的粒度,有 ...
  • A代碼編輯器,線上模版編輯,仿開發工具編輯器,pdf線上預覽,文件轉換編碼B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速開發利器)+快速表單構建器 freemaker模版技術 ,0個代碼不用寫,生成完整的一個模塊,帶頁面、建表sql腳本,處理類,service等完整模塊C 集成阿 ...
  • 為什麼會需要消息隊列(MQ)? ########################################################################################## 主要原因是由於在高併發環境下,由於來不及同步處理,請求往往會發生堵塞,比如說,大量的i ...
  • 今天被問到一個問題,如果你在阿裡雲上部署了一個IIS伺服器,此時如果有成千上萬的客戶端來訪問,你將如何設計?我東扯扯西談談,說加個線程池來處理,在加個請求隊列。當時覺得說的沒有問題,現在想想,伺服器自己就有這些東西,我想面試官要的是如何在IIS中設置高併發,而不是說實現....因此總結了一下,收集了 ...
  • 首先,我們在每次學習一門課程時,都有這樣的習慣,即閱讀目錄,瞭解本門課程所需要學習的範圍和內容,對課程有著整體的把握。之後,在對本門課程進行學習時,就會有一種把控全局的感覺,不管學到哪,都會大體知道這一部分在知識體系裡的作用和功能,也就更好的理解了知識的前因後果、來龍去脈。所以,在學習C語言之前,我 ...
  • 其實想寫JavaMail這一系列的博客已經有一個月之久了,緣起是某次亂逛傳智播客官網瀏覽到相關的視頻教程,想起大學時代學過的電腦網路提到郵件相關的協議,但遺憾的是到目前為止還沒有接觸電腦網路編程,尤其搞Java EE開發之後,底層的網路細節都已經封裝好了,並沒有接觸多少底層的細節,一直以來以為只... ...
  • Flask入門HelloWorld Flask官網:http://flask.pocoo.org/ Flask中文翻譯:http://dormousehole.readthedocs.io/en/latest/ Jinja文檔:http://jinja.pocoo.org/docs/dev/temp ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...