我有一些記錄需要存儲在數據庫表中,我想根據name
字段區分一條記錄與其他記錄。如何在數據庫表中區分彼此的行?
但是,由於名稱字段的數據類型爲varchar
,它會影響性能,因爲比較varchar
數據相對於數字字段比較耗費時間。
所以我希望每個記錄都有唯一的數字字段(比如說id
)。但是,如果我將id
作爲主鍵,則多條記錄可以包含相同的name
。
上述問題的解決方案是什麼?
我有一些記錄需要存儲在數據庫表中,我想根據name
字段區分一條記錄與其他記錄。如何在數據庫表中區分彼此的行?
但是,由於名稱字段的數據類型爲varchar
,它會影響性能,因爲比較varchar
數據相對於數字字段比較耗費時間。
所以我希望每個記錄都有唯一的數字字段(比如說id
)。但是,如果我將id
作爲主鍵,則多條記錄可以包含相同的name
。
上述問題的解決方案是什麼?
,您仍然可以在name
場創建UNIQUE
約束:
ALTER TABLE your_table ADD UNIQUE (name);
的UNIQUE
約束,像PRIMARY KEY
約束,將保證您的列將包含唯一的值。
請注意,每個表可以有許多UNIQUE
約束,但只有一個PRIMARY KEY
約束。
名稱可以做成唯一索引。
+1 .......謝謝 – 2010-02-20 09:32:36
你可以看看這個問題在http://stackoverflow.com/questions/2301691/what-datatype-to-use-for-a-field-that-可以-含有-a值從 - 預定義值 – 2010-02-20 09:37:06