2011-05-04 143 views
1

請考慮此表,其中密碼的大小是固定的,用戶名的長度也不相同。我想我已經讀過MySQL中的某個地方,如果你在一個表中使用一個varchar字段,最好專門使用varchar而不是混合char和varchar字段。它是否正確?同一表中的char和varchar

create table users 
(
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, 
username VARCHAR(100) NOT NULL, # variable length 
password CHAR(60) NOT NULL, # fixed length 
PRIMARY_KEY(id), 
UNIQUE(username) 
); 
+0

我通常使用SqlServer,所以無法評論MySql的實現。然而,你的例子讓我覺得很奇怪 - 你通常沒有一個固定長度的字段來表示類似密碼的東西,你通常只使用固定長度的字段來表示短的東西,比如(例如)一個郵政編碼。 :) – Nathan 2011-05-04 09:56:18

+0

@Nathan密碼被散列並且長度始終相同。 – helpermethod 2011-05-04 10:04:01

回答

1

不同之處在於char將使用整個60個字符並填充空格。 varchar不填充空格。沒有理由不使用這兩個,如果你有理由使用每個用於不同的目的。通常雖然我會使用varchar這兩個。

相關問題