緊接著14期的內(nèi)容,在基本規(guī)劃做好以后咱們先把數(shù)據(jù)庫建好。昨天有人建議我按照QQ企業(yè)郵箱的來做,這個可能太復(fù)雜了,怕大家更加迷茫,我做案例更多是希望朋友們通過案例舉一反三,從簡單的產(chǎn)品推導(dǎo)出復(fù)雜的應(yīng)用。
第十四章 公司通訊錄開發(fā)
二、公司通訊錄數(shù)據(jù)庫建立
第13期里有SAE數(shù)據(jù)庫的介紹,如果沒有開通的請先移步把SAE的數(shù)據(jù)庫服務(wù)開啟,點擊“管理MySQL”進入到數(shù)據(jù)庫的圖形管理界面,如下圖:
數(shù)據(jù)庫里目前沒有任何數(shù)據(jù)表,所以我們先來建立第一張數(shù)據(jù)表“員工表”,取名為“roster”,員工表我調(diào)整了下結(jié)構(gòu)增加了幾項,最后的項目為:序號、姓名、工號、照片、性別、生日、手機、電話、部門、郵箱、微信號、微信OPENID、員工狀態(tài)、入職日期、添加時間、更新時間、記錄狀態(tài)。
在建表之前其實還要設(shè)定每個字段項的屬性,我這里簡單寫一下,后面在解釋建表的時候大家可以參照看:
字段名 類型 長度 其他
序號 數(shù)字 5 自增、主鍵
姓名 字符 10
頭銜 字符 20
工號 字符 10
照片 字符 50
性別 數(shù)字 1 0為女,1為男
生日 日期
手機 字符 15
電話 字符 15
部門 數(shù)字 4
郵箱 字符 50
微信 字符 30
openid 字符 50
員工狀態(tài) 數(shù)字 1 1為在崗,-1為離職
2為休假
入職 日期
添加 時間
更新 時間
記錄狀態(tài) 數(shù)字 1 1為正常0為刪除
字段數(shù)根據(jù)上面的規(guī)劃應(yīng)該是18個字段,所以應(yīng)該填寫18,但我這里填寫3是為了后面切圖片和講解的方便,大家如果填寫18看到的樣式會不同,沒有關(guān)系,另外建立過程中還可以增加字段數(shù)的。
點擊執(zhí)行按鈕,就切換到表設(shè)計界面,如下圖:
在上圖中每一列就是一個字段,如果大家前面填寫字段數(shù)超過5的則視圖中每一行就是一個字段,但不管如何顯示,每個字段都有下面這些屬性:
字段名稱,用來描述字段的名稱,它可以用中文、英文字母、數(shù)字等字符來描述。但是建議不用中文或者純數(shù)字,命名最好使用表名+下劃線+該字段的英文名或者拼音縮寫。
字段類型,用來限定數(shù)據(jù)格式,同一字段的數(shù)據(jù)類型都是一樣的。點擊類型的選項菜單會出來一大堆,不用怕很多我們是不太會用的,常用到的類型如下:
TINYINT:一個很小的整數(shù)。有符號的范圍是-128到127,無符號的范圍是0到255。
SMALLINT:一個小整數(shù)。有符號的范圍是-32768到32767,無符號的范圍是0到65535。
MEDIUMINT:一個中等大小整數(shù)。有符號的范圍是-8388608到8388607,無符號的范圍是0到16777215。
INT:一個正常大小整數(shù)。有符號的范圍是-2147483648到2147483647,無符號的范圍是0到4294967295。這個經(jīng)常用來保存UNIX時間戳。
CHAR:一個定長字符串,當存儲的字符長度小于設(shè)定長度時總是是用空格填滿右邊到指定的長度,超過則自動截斷。最多存放255個字母或者漢字,也就是不超過255個字符的都可以設(shè)成CHAR類型。這里不推薦用VARCHAR,因為處理速度不給力,對于存儲空間不敏感的可以忽略。
TEXT:最多可存放65535個字符,一般用于保存文章等。該字段無需填寫長度。
DATETIME:一個日期和時間組合。支持的范圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式來顯示DATETIME值。該字段無需填寫長度。
DATE:一個日期。支持的范圍是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式來顯示DATE值。該字段無需填寫長度。
字段長度,每一個字段需要存放的數(shù)據(jù)可能最大位數(shù),比如序號是用來做數(shù)據(jù)條數(shù)計數(shù)的,員工一般也就幾萬人了,所以這里設(shè)了5;姓名的話一般最多4、5個漢字,但是為了避免有奇葩的名字所以設(shè)了10位,其實如果考慮老外名字的話建議設(shè)定為30。
字段默認值,指如果這個字段在添加一條新的數(shù)據(jù)時沒有獲得賦值時將會保存成字段默認值。
字段語言格式,點擊這個選項卡就可以看到一大串各種語言格式,不用管他,我們可以總的設(shè)定一個就可以了。除非是有特殊需求。
字段屬性,這個主要是針對數(shù)字型字符的,前面介紹的幾個數(shù)字類型里有寫無符號和有符號,就是在這里設(shè)定。
字段是否可為空,打鉤標示可以為空,一般不打鉤,因為含有空值的列很難進行查詢優(yōu)化。
字段索引,這個很重要,索引將影響數(shù)據(jù)庫查詢的效率,一般會將常用的幾個搜索關(guān)鍵字段或者排序字段建立索引。不推薦字符串字段做索引,另外主索引只能有一個,自動增長的字段會被默認作為主索引。
自增屬性,在數(shù)據(jù)庫應(yīng)用,我們經(jīng)常要用到唯一編號,以標識記錄,最好的辦法就是將其中一個字段設(shè)為自增屬性,每新增一條數(shù)據(jù)記錄是都會自動加一,其計數(shù)順序不受數(shù)據(jù)刪除影響,如果有10條數(shù)據(jù),刪除其中一條后再新增一條,這條數(shù)據(jù)的序號不是10,而是11。
字段注釋,方便日后了解該字段的作用。
數(shù)據(jù)表注釋,方便日后了解該數(shù)據(jù)表。
存儲引擎,常用的有三種分別是MyISAM、MEMORY和InnoDB,其中MyISAM是管理非事務(wù)表。它提供高速存儲和檢索,以及全文搜索能力,是默認的存儲引擎,一般選這個就成。
數(shù)據(jù)表語言格式,前面字段里也有語言格式設(shè)置,其實只要這里設(shè)一個,所有的字符串字段就都默認用這個語言格式了,我們這里選擇utf8_general_ci,就是UTF-8的語言格式。
了解數(shù)據(jù)表的一些基本知識后我們再來看員工表的每個字段屬性實際應(yīng)該如何設(shè)定,截圖在手機上可能會有些小,大家可以到wx.qq.com上找到ZTalk的公眾號里輸入微信教程查看。
全部設(shè)定好后點擊右下角的保存即完成建表,如果字段需要增加的可以點擊旁邊的執(zhí)行按鈕增加一條或者多條新字段,如下圖所示,其中修改數(shù)字可調(diào)節(jié)新增的條數(shù)。
啰嗦一大堆估計很多朋友都云里霧里了,咱們還是搞簡單點的吧,建立數(shù)據(jù)表除了上面那種方法還有一種是通過SQL語句來建立,如下圖:
點擊選項卡的SQL,然后在輸入框中寫入以上的代碼就直接完成表的建立,當然我知道大家這個代碼是寫不錯來的,所以這節(jié)課的課件里有……輸入“微信代碼”就可以下載。
建立成功的話刷新網(wǎng)頁就可以看到員工表已經(jīng)建立成功了,如下圖
數(shù)據(jù)表記錄瀏覽,當里面沒有數(shù)據(jù)時該圖標灰色不可點。
數(shù)據(jù)表結(jié)構(gòu)查看,點擊后可以看到,我們所有設(shè)定的字段屬性,如下圖:
標示為1的地方可以新增字段,標示為2的地方是對某個字段進行編輯修改刪除等操作。
數(shù)據(jù)表查詢,當里面沒有數(shù)據(jù)時該圖標灰色不可點。
新增一條記錄,點擊后進入下圖,可以像我這樣隨便輸入一些數(shù)據(jù)然后點執(zhí)行就給數(shù)據(jù)庫插入一條數(shù)據(jù)了,注意的是roster_id這個字段空著就可以了,系統(tǒng)會自動賦值:
新增成功后點擊數(shù)據(jù)表瀏覽就可以看到這條記錄,如下圖:
清空數(shù)據(jù)表,請謹慎……
刪除數(shù)據(jù)表,請謹慎……
新建數(shù)據(jù)表。
關(guān)于數(shù)據(jù)表的建立基本就到這里了,昨天寫的規(guī)劃是4張表,但后來考慮了下覺得第一個案例沒必要搞的那么復(fù)雜,所以管理員和日志表先去掉了,就留員工表和部門表,并做了適當?shù)恼{(diào)整。
部門表我給大家列下屬性,大家可以先嘗試自己建一下,當然我也提供了代碼供下載。
部門表:
字段名 類型 長度 其他
序號 數(shù)字 5 自增、主鍵
部門名 字符 20
成員數(shù) 數(shù)字 5
上級序號 數(shù)字 5
添加 時間
更新 時間
記錄狀態(tài) 數(shù)字 1 1為正常0為刪除
數(shù)據(jù)表名字請使用class,字段名請參考我的,如果換別的話,后面程序里也要相應(yīng)更換。
聯(lián)系客服