2016-03-14 64 views
0

我有表,以檢查是否有額定上的某個項目或不與這些列特定的IP地址的用戶:rates(ip,item_id,created_at)我可以定義兩個主鍵此表我的表不需要主鍵,我應該使用它嗎?

1-初級(IP,ITEM_ID)

2 - 主(ID)

,但我真的不需要它們,因爲沒有加入沒有更新需要這個表,我應該定義主鍵? 我只能索引item_id和ip的性能,但沒有主鍵。

+0

是的。 1是你的PK – Strawberry

回答

1

您應該使用主鍵。正如ctrahey所說,如果組合是唯一的,那麼使用選項#1,如果不使用#2(附加列)。

1

一般來說,設計未來以及今天。你有一個非常自然的複合主鍵,除非你能夠或永遠能夠多次評價一個項目,在這種情況下,你應該引入id列。

1

看看SELECTs中的WHERE條款。這是一種快速且非常骯髒的方式,可以查看需要編制索引的內容。

您應該有PRIMARY KEY。它必須是獨一無二的。它可以是一個'自然'鍵 - 如果你不想要任何重複的值,這是一個很好的候選人。如果你沒有'自然'的PK,那麼有一個AUTO_INCREMENT

你不能有兩個PRIMARY KEYs,但一個PK可以有兩列。

Cookbook on building indexes

相關問題