mysql 预留一个自定义字段_mysql-预留字段
數據庫設計誤區:備用字段 / 保留字段 / 預留字段
【現象描述】
在數據表中,不僅設計了當前所需要的字段,而且還在其中留出幾個字段作為備用。
【原因分析】
這似乎可以叫做防患于未然,等到需要的時候,就不需在表中增加新的字段了
而且這樣做的話,一個表的數據應該會被存儲在相鄰的物理空間中,這對于性能也是有好處的。
另外的原因就是,在古老的數據庫中,如果改變數據庫的定義(包括增加字段、改變字段的類型、刪除字段等等),那么其中原來的數據就會丟失,所以這項工作非常麻煩,我們需要先建立臨時表,將數據備份出來,然后創建新表,將數據導入其中,最后再刪除原來的表。
【問題所在】
這樣的做法對于項目會導致很多問題,而且原先想要解決的問題并不一定能夠解決:
問題一:增加大量備用字段,必定會浪費很多空間,盡管其中可能都沒有具體的數據,但是僅僅是空字段也會占據一定的空間的。
問題二:由于命名的特點,備用字段無法在字段名上體現其意義,不規范,后期維護麻煩。如果沒有完善的文檔管理流程,用不了多久(可能也就是兩三年),就沒有人能夠說清楚到底哪個字段代表的是什么意義了。
問題三:增加了這些備用字段就真的會夠用嗎?不一定,因為我們只是每個類型的字段留出幾個備用,如果數量超過,或者要使用特殊的、不常用的類型的時候,還是需要增加新的字段。而且如果沒有完善的管理,誰又能說清楚倒底哪個字段已經被使用,哪個字段還可以使用呢?到時候還不是要增加新的字段。
【解決方案】
其實上面的這種設計方式就是一種“過度設計”,我們應該做的就是“按需設計”,在經過詳細有效的分析之后,在數據表中只放置必要的字段,而不要留出大量的備用字段。
當需要增加相關的信息的時候,就要具體情況具體分析:
1. 如果數量很少,而且信息的性質與原表密切相關,那么就可以直接在原表上增加字段,并將相關的數據更新進去;
2. 如果數量較大,或者并非是原表對象至關重要的屬性,那么就可以新增一個表,然后通過鍵值連接起來;
3. 對于表的數據的存儲位置所導致的性能問題,我們可以通過在特定時間對數據庫的數據進行重組來解決,而這項工作對于長期運行的數據庫來說,也是需要定期進行的。
https://blog.csdn.net/iw1210/article/details/44752771
總結
以上是生活随笔為你收集整理的mysql 预留一个自定义字段_mysql-预留字段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python二维数组去重_PHP二维数组
- 下一篇: atlas mysql 读写分离_MyS