https://blog.csdn.net/Lockey23/article/details/73468418
系統分析
- 作爲一個微型博客系統,不需要像微博或者csdn這樣的大網站每天承受數以N萬計的用戶訪問,也不需要展示豐富繁雜的內容,所以我們就按最簡來進行數據庫的設計,這樣相對而言系統承載要小的很多很多,數據庫條目關係以及儲存佔用也很小,也便於基礎學習者理解。
- 服務器和數據庫我們一般都會部署在linux平臺上,如果本地開發練習其實並不麻煩,如果想把成果放到網上去,那麼我們可以租用一部雲主機,在雲主機上搭建一個真實的可訪問系統,這些需要大家自己去探索學習。
- 數據庫的話我的示例之中一般都會使用PgSql,可以參考前面的相關文章爲應用配置穩定數據庫
硬件環境並不作爲此次討論的重點,所以不多說,當然我知道的也有限,接下來我們着重討論數據庫的分析部分
數據庫分析
此次示例中我本人既作爲一個創建者也作爲一個使用者,所以所有內容都是個人親身試煉所得,不足之處願受教於高人。因爲是一次開發演練,所以我們不關心博客系統本身的市場需求,只討論在這個系統之中數據庫如何根據需求去進行設計。
數據庫需要存儲與訪問的數據對象有哪些
- 用戶爲核心,所以用戶對象必須要有一張數據表,字段包含包含一些常用信息,比如用戶ID、暱稱、登錄名、密碼,爲了不讓一張表的數據過於繁雜和便於查詢,我們又設計出了一張用戶信息表,保存一些不常用的用戶信息如生日、愛好、教育信息等;
- 內容爲主體,所以文章對象要有一張數據表,字段包含用戶ID、文章分類、文章標題、關鍵字等;
- 文章分類表,字段類別、類別名稱等’,
- 好友表,用來存儲互加好友的兩個人之間的關係,字段包含用戶id和好友id以及自增的主鍵等;
- 用戶關注表,字段包含用戶id以及被關注人id和自增的主鍵;
- 私信表, 字段包含自增私信ID,發信者ID,收信者ID, 私信內容;
- 系統通知表,字段包含系統通知ID,接受者ID,通知內容,自增通知內容id;
- 評論表,字段包含評論自增ID號,收到評論的用戶ID,評論內容的ID,評論內容,評論者ID,評論時間等;
- 評論回覆表,字段包含回覆自增ID號,收到回覆的用戶ID,回覆評論的ID,回覆內容,回覆者ID,回覆時間,回覆等級等;
- 留言表,字段包含留言自增ID號,收到留言的用戶ID,留言內容的ID,留言內容,留言者ID,留言時間等;
數據對象之間的關係
- 與用戶表關聯的表:所有其他的表都與用戶有聯繫,要麼外鍵約束,要麼有字段聯繫
- 文章表與文章分列表和文章評論表存在外鍵約束
- 評論表與回覆表以及留言表和留言回覆表都有外鍵約束
關於數據的表結構關係我會在下一篇的邏輯設計中細細去講解