2014-01-31 39 views
0

我有一張表,其中有ProductTypeID, BrandID, SupportedBatteryID列,它存儲了由特定產品支持的batteryID我們是否需要引用另外兩個表的表上的主鍵?

這裏沒有列是唯一的,所以我需要這些類型的表上的主鍵?

如果我將添加一個主鍵,它會提高性能,同時通過使用產品ID搜索特定產品的電池?

+2

除非有候選鍵,否則不能有鍵。這就是說,好的桌面設計*規定*每個記錄都有一個鍵。在這種情況下,我懷疑整個記錄是一個多列候選鍵 - 因此可以用作PK。 (但是,您需要更詳細地查看或討論數據)。無論如何,密鑰不會提高性能 - *索引*。但是PK通常也是一個聚集索引。在這種情況下,如果ProductTypeID上沒有包含作爲第一列的聚集PK,則可能會添加* non-key *索引以幫助查詢。 – user2864740

+0

@DeepakKumarPadhy這是一對多還是一對一的關係,我的意思是對於一個productId,是否只支持一個'BatteryID'或多個電池可以支持特定的ID? –

+0

@SurajSingh:對於單個產品支持多個battries,這就是爲什麼product id不能成爲主鍵 –

回答

1

您可以在(ProductId, SupportedBatteryId)上構建聚簇索引。 這將幫助您不創建主鍵

相關問題