国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > 文庫 > 正文

談談數據庫的字段設計的幾個心得

2020-10-29 21:46:11
字體:
來源:轉載
供稿:網友

數據庫的字段設計有很多細節性的技巧,下面將過去在開發中體會到經驗整理出來,做個備忘。

  1. tinyint 是-128到128 。當屬性設置為unsigned的時候。最大值就是255了。現在知道為什么需要設置為unsigned屬性了。原來是為了最大限度的使用給予的存儲空間。如果不設置。那么假如你的值都是正數的。那么-128這一百多個數字就相當于是浪費了。
  2. tinyint會自動設置為tinyint(3)。
  3. smallint 不設置unsigned的時候,也有3萬多的樣子。
  4. tinytext 就是255個字節。大概就是存儲127個中文的樣子 tinytext就相當于varchar類型。把它看成這樣的該類型就容易理解了。
  5. int 類型phpmyadmin默認會設置int(10)。
  6. 概念糾正:原來一直以為這里的10表示位數。直到有次想保存1101061021496,結果在字段中的值都變成了:4294967295。 看MySQL手冊上說:
  7. (int后面括號的數字)顯示寬度并不限制可以在列內保存的值的范圍,也不限制超過列的指定寬度的值的顯示。
  8. int的范圍:-2147483648到2147483647。剛好是10個位,那么就是數十億級別的數字。數據庫設計經驗:像訂單的值非常大。不確定,如果達到10位數,還不如使用varchar類型。fangwei就沒有使用int,而是varchar類型。
  9. 從上面也告訴我一個經驗:如果保存在數據庫的值都變成一樣的。也就是無論我是1101061021496 還是1101061021569,結果都變成了固定的值,比如4294967295。那么可以考慮確認是否是數據庫該字段的范圍問題。這樣的問題出現過好幾次了。就是沒有掌握思路。導致浪費了不少時間。
  10. 將字段設置為not null 還出于另外一種考慮:mysql表的列中包含null的話,那么該列不會包含在所有中。也就是使用索引是無效的。所有,考慮今后會使用索引的字段,就要設置字段屬性是not null。
  11. 如果你要保存NULL,手動去設置它,而不是把它設為默認值。
  12. 考慮到這個字段今后會作為查詢關鍵字使用like的形式進行搜索。那么要將該字段定義成索引。這樣使用like查詢就會更快。
  13. 現在終于體會到到國外作者書籍上提到:設計數據庫之前要問自己,之后會查詢哪些數據。 考慮了這些,以后有什么查詢需要。結構都能適應了。

關于設計大流量網站數據庫,會員分表或者分庫的設計考慮:

主鍵不要設為自增型。設置為自增型的后果就是:今后無法分離在不同的mysql數據庫服務器上。比如id編號由于是自增的,所以兩個數據庫中可能會出現用戶編號都是10005的情況。

但是,mysql主鍵會自動設置為自增型。可以用另外一個字段來作為標識符。而不是自增型id號。方法:新增一個字段作為行的標識符。具體設計:一個表做兩個字段,一個是id作為主鍵,自增型,另外一個是uid,作為用戶的標識。

程序判斷上,是以uid作為判斷用戶的依據。而不是id主鍵作為判斷依據(程序上的失誤,改動比起數據庫設計失誤改動容易得多。因為你數據已經入庫了。在修改起來就比較難了)。

數據庫的一點設計心得

1.按照[流程]順序走一遍     (相關用戶進行一次完成的操作流程)

2.先列出所有的屬性      (實體(型)、  屬性、 聯系)

3.判斷每一個屬性 是屬于那一個實體      

4.實體與實體之間的聯系   [1:1、  1:n、  n:1、   n:n]

5.相關數據表的設計,允許有數據冗余(犧牲空間換取效率),但是一定不能有數據項之間的矛盾       [工程與理論之間的考慮]   

6.當有多種方式進行數據處理的時候,應該綜合多個方面,進行考慮,選取最適合當前項目的解決方案     [不一定是理論最好的,但卻是適合、實用的]

7.備注: 聯系的 1:n中, [概念模型]生成[物理模型]的時候, 會把1中的 主鍵作為,外鍵放入到n中  

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金华市| 水富县| 青铜峡市| 海宁市| 于田县| 新野县| 临漳县| 基隆市| 获嘉县| 汽车| 龙岩市| 武义县| 西盟| 辽宁省| 嘉祥县| 惠安县| 浦城县| 凤凰县| 桑植县| 南京市| 仙居县| 磐石市| 淮北市| 黄平县| 怀远县| 汉川市| 通化县| 闽侯县| 乐安县| 重庆市| 仁化县| 从化市| 根河市| 普陀区| 广德县| 开远市| 永清县| 林州市| 甘孜| 繁昌县| 怀化市|