9.1.MySQL數據庫設計規範要求

爲了規範統一,在數據庫表結構設計上,設計人員必須遵從以下規則。

  1. 數據庫編碼。MySQL數據庫編碼默認採用utf8mb4,而不是utf8。是要考慮到微信暱稱中有表情符號,採用傳統的utf8無法識別。
  2. 每張表必有Id、AddTime、UpdateTime這個三個字段,注意OrderNum字段。
    1. Id。整數類型,主鍵,自增長,採用有符號(不要勾選無符號,否則會數據庫的int類型會映射爲Java的long類型)。
    2. AddTime。datetime類型,不允許爲null,設置默認值CURRENT_TIMESTAMP。自動生成的訂單編號,會依賴此字段。
    3. UpdateTime。datetime類型,不允許爲null,設置默認值CURRENT_TIMESTAMP,且勾上根據當前時間更新
    4. OrderNum。整數類型。不允許爲null,默認值0。在開啓了排序功能的組件中,必須存在此字段。
    5. 字段位置順序。Id必爲第一個位置,AddTime、UpdateTime必爲倒數第2、倒數第1個位置。中途添加了其他字段,注意重新調整順序。
    6. AddTime與UpdateTime一般不用於業務存儲數據,僅作爲冗餘字段記錄數據的添加與更新時間節點。是爲了方便以後追溯數據記錄,或異常時輔助排查問題。
  3. 字段命名規則,遵從大駝峯法。即首字母要大寫。如UserName、Password、SortName等。
  4. 整數類型字段,根據應用場景進行設置
    1. 參與計算的類型。比如價格、數量等。不允許爲null,要設置默認值(根據實際情況,一般爲0)。如果設置爲允許null,在某些計算彙總下,返回值會是null,從而得不到正確的值。
    2. 作爲外鍵關聯的Id。比如分類Id等。根據業務場景,可設置允許null,且不能設置默認值。
  5. 外鍵與索引。數據庫中必須要設置外鍵與索引。
    1. 外鍵。如果表之間有關聯,外鍵必須要建立。可以通過外鍵來輔助實現很多功能。
      1. 外鍵命名規則:FK_表名稱_外鍵字段名稱,如:FK_User_RoleId、FK_Student_ClassId。名稱中,不需要加上表前綴“qd_”。如果表名稱中有下劃線,也可以合併,比如表名稱爲qd_shop_worker,設置ShopId爲外鍵,那麼名稱規則可以是:FK_ShopWorker_ShopId。駝峯命名法,首字母大寫。
      2. 外鍵限制數據刪除。業務要求主表的子表下有數據時不能刪除,則可以通過外鍵設置爲STRICT來限制。
      3. 外鍵遞歸刪除。業務要求刪除主表時,所有下級子表數據同步刪除,則可以通過外鍵設置爲CASCADE來實現。
    2. 索引。索引可加快數據搜索速度,當數據量大時,速度會有質的提升,所以索引必須要建立。
      1. 索引命名規則:Index_表名稱_索引字段名稱,如:Index_User_UserName、Index_Order_OrderNo。
      2. tree索引。經常作爲連接查詢條件的字段,可設置索引。
      3. 唯一索引。如果字段值要唯一不重複,需要設置唯一性索引,採用hash類型。
    3. 觸發器。格式:表名稱_觸發時機_觸發事件。表名稱可去掉“qd_”或“nc_”前綴,如果中間有“_”隔開,可合併,首字母大寫。觸發時機只有after和before兩種。事件有insert、update、delete這3種。
      1. 如:Project_After_Insert、Project_Before_Insert、ProjectWorkLog_After_Delete。首字母都大寫,3個段使用下劃線分隔。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章