前言
在資料庫中建立一個資料表本身並不是很困難的動作,像Mysql可以透過phpmyadmin(http://www.phpmyadmin.net/)的介面很簡單的就可以建立。但是要如何建立一個完美的資料表,不僅是當下使用,之後在維護上也要能方便管理,就有一些要點可以參考。以下針對各點加以說明。
資料表的命名
1.該資料表如果紀錄多筆資料,在資料表的命名上要以s做為結尾。
如︰Orders, ErrorMessages, Products..
2.不要使用空白。
如︰Order items改成Orderitems
3.不要使用SQL的關鍵字來命名。
如︰user
4.名稱字首使用符合且易懂的命名。
如︰tblCustomers
定義欄位的規則
1.欄位的命名如同資料表的命名一樣,避免使用空白或是SQL的關鍵字。
2.使用 "資料表名稱+ID" 的方式來命名當作主鍵的欄位名稱。
如︰CustomerID
3.謹慎選擇欄位的資料格式(data type)
*除非該欄位會存放16-bit character Unicode data,資料格式才設定成NVARCHAR or NCHAR。
*依據預定存放的資料內容來設定資料格式,如可以設定INT(4 bytes)時就不要設定成BIGINT(8 bytes)。
*INTEGER在做資料排序上比VARHCAR or CHAR來的快速,因此當該欄位只會存放數字型態時請設定成INTEGER。
避免設定欄位預設值為 NULL
1.避免設定欄位的預設值為 NULL,因為該欄位遇到NULL會造成full table scan而失去索引的功能。
如︰SELECT * FROM table WHERE column IS NULL
關於主鍵設定(Primary Key)
1.資料表必須不為錐疊型態。(HEAP不大懂意思,目前找到解釋這個字的網址是http://aikosenoo.pixnet.net/blog/post/14109146)
2.每一個資料表都必須建立一個主鍵的欄位,而且該欄位的資料型態最好設定為INT。
3.主鍵欄位不要使用VARCHAR, FLOAT, REAL, DATE 和 GUID 資料型態。
4.當該欄位已被設定為資料表的ID時,增加設定一個代理鍵。(這個不大懂意思...)
關於預設值(Default Value)
當欄位設定為NOT NULL時請記得要給一個預設值。
關於欄位說明(Description of column)
每個欄位應該都要加上說明以便日後維護上的方便性。
參考網址
http://connectsql.blogspot.com/2009/08/be-careful-when-creating-table.html