2011-08-29 72 views
5

我做了一個研究,以一個CMS的數據庫:mysql數據庫中的表字段設計?

uid(Unique user ID):將其設置爲int(11)

name(nique user name將其設置爲varchar(60)

created(tiemstamp for when user was created)將其設置爲int(11)

title文章的標題將其設置爲varchar(255)

1,當我應該使用Int或char或varchar或其他類型

2,如何在括號中設置數字。例如:varchar(60)謝謝!

+0

問題是什麼? –

回答

10

當您想要使用主鍵(INT比字符串更快查找)或計算數據時,應該使用INT。例如,您要計算在線訂購某些產品時某人購買的物品數量。每一行都會有物品描述,價格,數量(以及更多 - 只是在此舉例)。在這種情況下,如果數量爲INT,則很容易檢索訂購的產品數量(發票的產品總數)。

類型爲「char」和「varchar」的字符串有點不同。 「char」類型的定義如下:

一個固定長度的字符串,在存儲時總是用空格填充指定長度的空格。

如果用char(200)定義第一個名字,那麼將使用200個字節。 varchar類型定義如下:

一個可變長度的字符串。注意:存儲值時會刪除尾隨空格(這與ANSI SQL規範不同)

如果用varchar(255)定義第一個名稱並且名稱爲「Tim」,那麼您將使用4個字節。 3表示字段長度的名稱+1字節。

通常情況下,你使用HTML顏色CHAR(6)(FFFFFF),通常使用VARCHAR的姓名,地址等...

關於你提到的第二個問題是建立在括號中的數字。該數字將設置字符串的最大長度。如果將varchar(60)設置爲某個字段,並且在插入或更新記錄時,並且該字符串的長度大於60個字符,則MySQL將截斷該字符串以使用前60個字符。

你可以在這裏查看所有的字段類型:http://help.scibit.com/mascon/masconMySQL_Field_Types.html

你也可以閱讀有關數據庫標準化:http://en.wikipedia.org/wiki/Database_normalization

+0

如果使用varchar(255)定義名字並且名稱是「Tim」,則將使用4個字節。 3表示字段長度的名稱+1字節。爲什麼它爲該字段的長度添加1個字節。謝謝,。 – zhuanzhou

+5

+1字節由MySQL引擎執行。你不能改變這一點。因爲varchar是一個可變長度的字符串,所以需要告訴MySQL字符串有多長。 –

3

一般類型取決於實際需要存儲的內容。但是,PK索引的速度和大小也非常重要,所以這也被設計成數據庫表。

括號中的數字表示類型大小,根據類型(varchar,例如,指示可以存儲的最大字符數)具有不同的含義。你應該看看這個數據庫引擎的手冊。