2016-03-14 66 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

相关问题