数据库设计-简化字典表[通俗易懂](常用的数据网站汇总)
?? 在進行數據庫設計時,我們經常會遇到各種各樣的業務需求,從而設計出各種各樣的表。而想要做好一個數據庫,不但需要前期對各種業務需求的深度理解,還需要在后期項目完善的過程中對數據庫更新修改從而使得數據庫設計的越發完美。
??對于那些涉及到業務的表或許不太好入手,但項目中經常出現的各種字典表就很好入手了。項目越大那么字典表就少不了,字典表就是常見的類型、狀態、單位之類特定的一些值。有些人每一個業務或模塊都設計一個字典表用來標識類型或狀態等等,這樣表的數量就不少了。其實我們可以將一些字典表合并起來,用兩個表就能實現多個表的功能。下面我以三個狀態表來演示。
??下面是三張表的內容,表名分別是Order_Status、Clip_Status、RedPacket_Status
??上面三張表的作用分別是:第一張用來處理訂單的狀態信息,第二張用來處理卡(比如會員卡)的狀態信息,第三張用來處理紅包的狀態信息。根據上面的情況可以明顯的看出,第三張表是多余的,完全可以去掉第三張表而利用第二張表的數據也沒問題,但是因為業務需要給第三張表的加上其他的狀態時,豈不是又要加上這張表,如果加在第二張表呢?也是不行的,如果需要對每個業務模塊的字典表進行維護,那第二張表豈不是有兩個業務模塊與之對應,那樣就顯得有點不倫不類了。
??接下來的這種方法合并的方法就顯得更加的靈活轉變了。我們可以把每個業務模塊假設成一個大類,而業務模塊用到的字典表數據就假設成小類。按這個思路就能把多個字典表完成合并了。
??下圖為表結構:
表數據:
連表查詢結果:
有人會說那個卡狀態和紅包狀態不還是有兩種一樣的值嗎?這樣還是不夠好啊。很簡單,在Functional_Describe表中給一樣的值加上一個公共區就行了。見下圖:
總結:很明顯這就是一對多的關系,一個業務或模塊對應多個狀態或類型,這樣設計可以省略多個表,擴展性也可以,對于新加入的業務,只需要先在Functional_Describe表中添加它的描述,在去Status表中添加與它對應的字典表數據就行了。只涉及數據的錄入而不需要去添加表。
總結
以上是生活随笔為你收集整理的数据库设计-简化字典表[通俗易懂](常用的数据网站汇总)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【CTR模型】TensorFlow2.0
- 下一篇: 发票章怎么盖