說我看起來像這樣的數據庫;通過添加索引列來優化SQL數據庫
Product with columns [ProductName] [Price] [Misc] [Etc]
Order with columns [OrderID] [ProductName] [Quantity] [Misc] [Etc]
ProductName是Product的主鍵,一些字符串類型和唯一的。
OrderID是主鍵和某種整數類型,而ProductName是外鍵。
假設我將產品的主鍵更改爲整數類型的新列,即[ProductID]
。
這會減少數據庫大小並優化加入這兩個表(以及類似的操作)的查找,還是這些優化是由(most/general/main)自動執行的SQL數據庫實現?
從技術上講,使用(字符串)產品名稱爲Product
主鍵,一個數據庫應該能夠在Order
實施ProductName列作爲只是一個指向行中Product
,並執行JOIN
作爲quicly作爲一個有整數一個外鍵,這是一個實現SQL的標準方式。
更新: 這個問題是關於如何SQL服務器處理的外鍵,而不是產品是否表需要序列號,或者我如何處理與數據庫中的產品名稱更改。
+1用於指出改變產品名稱的問題 – Donnie 2010-05-26 12:58:20