小白做好前端html設計后,馬上開始進入數據庫結構設計步驟。
在開始之前,小白回憶了一下老大在公司里培訓時講過的數據庫設計解說:
對於初學者來說,很多拿到原型時不知道怎么設計數據表結構,這是很正常的事,可以通過借鑒別人的項目總結經驗,慢慢就會了。
拿到原型后,我們要認真觀察原型里顯示的內容有那些,考慮一下這些內容中那些是不變的,即寫死在頁面中的,那些是需要后台更改變動的,將這些變動的記錄下來,添加到數據字典中。在記錄這些字段時,還要做的事就是分類,一個類別就是一個數據表。(當然如果初學者很牛的話,那你也可以像一些架構師大神那樣,不用原型直接打開設計工具繪制表結構關系圖也沒有任何問題)
然后我們再根據業務流程與業務需求,對字段進行增減優化。
最后再根據目標業務量,與一些非功能的質量屬性要求,來優化表結構。做完這一步,數據表結構設計就八九不離十了。
當然在設計時,我們要注意的是表結構的可擴展性,也就是說某些字段會不會存在一對多的情況,如果你設計成一對一的話,那有可能后續要升級功能時就會遇到很多障礙了。
另外,我們也要立足當前,不能為了將來有可能的事情去增加一大堆冗余字段,到最后可能多了好多沒有用過的字段存在。對於python來說,它不需要去生成一大堆實體類,所以我們在后續根據需要添加各種字段也是非常方便的,建議絕要用到時再添加對應的字段。
一、表結構設計
首先我們打開有公司介紹的頁面


可以看到公司介紹里面顯示的是圖片和文字信息,它屬於信息編輯類型,而聯系我們也是一樣的,所以可以把它們放到一個信息表中統一管理,根據原型我們可以看到首頁和公司介紹頁面展示的圖片大小是不一樣的,所以需要增加一個封面圖片地址字段,用來存放首頁顯示的圖片地址,而公司介紹頁的圖片與內容文字可以一起存儲到內容字段中(首頁展示內容時,可以使用代碼過濾掉內容中的圖片),所以這里需要兩個字段來存儲對應的內容。另外,為了方便后台管理員區分這是什么內容的記錄,所以再增加一個標題字段來進行說明,不用做前端展示用。
前面的分析,小白使用老大給的數據字典excel模板,設計對應的數據表結構(使用的是postgresql數據庫,見下圖)

PS:主鍵幾乎每個數據表都是必須的,一般使用自增類型的整形數值,對於數據量比較大的分布式數據結構,多數會用uuid做為主鍵id;另外對於信息表,還會增加一個額外的add_time來存儲這條記錄添加的時間
打開產品中心與產品詳情頁面


從原型的產品中心頁面,我們可以看到左欄有產品分類列表,右欄是產品詳細內容,所以我們需要分兩個表來進行存儲,並將它們關聯起來。產品分類表用來存儲分類信息(需要有分類名稱字段),用於管理前端分類列表的展示,可以增加是否啟用字段,方便新增或下架某個系列產品時,批量上線或下線操作用的(顯示或隱藏該分類)。
而產品信息表則可以根據產品詳情頁面所展示的內容字段來進行添加(從產品詳情頁面上可以看到,需要產品名稱、編碼、規格、保質期、產地與產品描述字段)。除了頁面展示內容外,我們還需要增加產品分類id字段,用來綁定產品分類表,用於點擊產品分類時,后台根據這個分類id來查詢出對應的產品。另外增加封面圖片地址字段,用於顯示產品列表時,展示對應的圖片。最后是否啟用字段也是為了顯示和隱藏產品用的。

除了以上內容外,我們還需要增加一個管理員管理表,用來管理后台登錄用戶用的,由於這個企業站太小了,所以小菜鳥偷懶不做這個管理頁面,哈哈...后面的故事慢慢展開后會逐漸完善系統功能

二、數據表SQL代碼生成
運行下載包中的ExcelToPostgreSql.exe(這是用C#開發的,需要Framework 3.5才能運行),選擇下載包中的數據字典,然后填入Excel表名稱Sheet1,點擊運行就可以看到生成好的Sql執行代碼了(如果用WPS打開了數據字典,點運行可能會無反應,是因為WPS獨占了excel文件,需要關閉后才會正常運行)

PS:由於這個軟件是隨手寫出來的,所以不是很完善,必須遵循下面一些要求才行
第一行列的中文說明不能刪除,不然運行時會出錯;表與表之間要空一行;主鍵列支持PK(創建主鍵)、IX(生成索引)與UX(創建唯一索引)三種,如果想要創建復合索引,只能手動添加;允許空列,只需要添加no就會添加非空限制;默認值列,默認時間類型字段為null值,如果想要設置為now(),即生成當前時間,則需要將允許空列設置為no就可以了,因為now可能是excel的關鍵字,這個默認值程序讀不出來;另外,text類型字段默認值為'',即生成時會自動添加。
三、創建數據庫與數據表
打開pgAdmin連接本地postgresql數據庫
點擊
在彈出窗口中,輸入數據庫名稱:simple_db,點擊確定,完成數據庫創建。

然后點擊剛創建好的數據庫后,再點擊標題欄的sql查詢分析器

在彈出來的sql編輯器窗口中粘貼前面生成好的sql語句進來,然后點擊執行查詢,數據表就創建好了

接着清空sql編輯器里的代碼,輸入下面語句,點擊執行創建后台管理員賬號,方便后面開發操作
INSERT INTO manager(login_name, login_password, is_enable) VALUES ('admin', 'E10ADC3949BA59ABBE56E057F20F883E', 1);
到這里就完成了數據庫的相關設計與創建工作了,點擊下面鏈接下載相關文件
版權聲明:本文原創發表於 博客園,作者為 AllEmpty 本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權。
python開發QQ群:669058475(本群已滿)、733466321(可以加2群) 作者博客:http://www.cnblogs.com/EmptyFS/
