數據庫建模-面向對象程序設計(ER圖,類層級結構圖)

數據庫表(ORM對象)是Django-web開發的基本單位,是整個項目的操作對象,所以項目開始時,首要任務就是數據庫建模,設計ER圖。
利用Mysql自帶工具畫ER圖
1.分析功能
博客功能
1.點贊
2.發博客
3.評論區

2.研究功能,寫下量詞,動詞,名詞: 從而確定model關係(一對多),類名,實例名,函數名(方法名)
用戶可以發佈一篇博客,用戶可以對一篇博客或一條評論發起點贊
實體:
一個用戶,
一篇博客,
一條評論,
一個點贊,
寫出所有實體
在這裏插入圖片描述
寫出實體(類)間關係與基本屬性(主鍵,外鍵)
在這裏插入圖片描述
外鍵即形成映射關係
post-picture: 一對多,一個post_id可以找到多個picture_id, 所以在picture中生成外鍵 post_post_id. 有這樣的邏輯存在,前端就可以實現了

3.補充屬性,實體,完成功能
1.實現post可發多張照片,多個視頻的功能:如果將照片設爲post一個屬性則一個說說一次只能發一張圖片。 將picture抽象爲一個類(實體), 然後使post與picture一對多
設置屬性存儲圖片,視頻路徑(數據庫_文件系統原理
在這裏插入圖片描述
2.實現可對post,comment點贊功能: 將likes抽象爲一個類, 屬性記錄對user, post
在這裏插入圖片描述
3.實現記錄發說說時間: 添加date屬性,用於抽獎等
在這裏插入圖片描述
完整版:
在這裏插入圖片描述
補充:
1.數據庫-文件系統的存儲
數據庫的優點是查詢非常快, 文件系統是存儲能力強 電腦上用文件系統,不用數據庫
數據庫用來查詢,文件系統用來存儲
數據庫可以存儲文字等小類型信息, 視頻,圖片放在文件系統中
所以用數據庫存儲文件,視頻在文件系統中的路徑即可。

2,ORM字段:
Foreignkey: 當你在Django中刪除了一個有着外鍵關聯的數據時,比如一個作者和他名下的所有的書的信息,書的外鍵是作者(一個作者可有好多本書),當你把作者的信息從數據庫中刪除時,Django提供了一下幾個參數來對作者的書的數據進行操作

CASCADE:刪除作者信息一併刪除作者名下的所有書的信息;
PROTECT:刪除作者的信息時,採取保護機制,拋出錯誤:即不刪除Books的內容;
SET_NULL:只有當null=True纔將關聯的內容置空;
SET_DEFAULT:設置爲默認值;
SET( ):括號裏可以是函數,設置爲自己定義的東西;
DO_NOTHING:字面的意思,啥也不幹,你刪除你的幹我毛線關係

3.面向對象的程序設計思想:摘自笨方法學python
1.描述功能,摘除關鍵的動詞,名詞,量詞,描述修飾詞
2.建立ER圖和類層次結構圖:
ER圖:名詞即類名,動詞即方法函數名,量詞即類之間的關係,描述修飾詞即類的屬性(如:用戶1的點贊,點讚的次數,點讚的時間)
類層次結構圖:找類的共同點,歸納父類,去除重複
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
具體代碼
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章