我有一张用于留言板的表格(见下文)。我知道最佳做法决定创建一个Primary Key
,但我看不出有什么理由去创建一个。我将主要搜索(UID, GRP_ID
)并将创建一个索引。删除将基于Last_timestp
。在这种情况下,应该有一个PK
?没有主键的数据库表
CREATE TABLE CP.CHAT
(UID BIGINT NOT NULL, GRP_ID BIGINT NOT NULL, CHAT VARCHAR(200) NOT NULL, LAST_TIMESTP TIMESTAMP);
但是不太可能,你可以有idential LAST_TIMESTP值多行;正如LeBarton在他的回答中所说的那样,简单的自动增量id字段占用的空间量是可以忽略的。此外,对于用户或组ID,“BIGINT”可能是* EXTREME *矫枉过正;它可能甚至是矫枉过正的自动递增主键。 “INT”是一半的大小;您可以将ID,UID和GRP_ID设置为INT,并且表格将比您在上面定义的小。 – Uueerdo