前言

在資料庫中建立一個資料表本身並不是很困難的動作,像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

arrow
arrow
    全站熱搜

    山村有祐 發表在 痞客邦 留言(0) 人氣()