2015-03-19 105 views
0

我想实现一个好友请求功能并使用oracle 11 xe数据库。 我的用户1发送一个请求给用户2,以便在数据库中的记录被创建为如何防止数据库中的重复条目

的requestId:12, FROMUSER:用户1, TOUSER:USER2, 状态:0(指示待定) , creationTime:时间戳

我想防止相同的条目,即user1只能发送一次不是两次的朋友请求。请求Id是主键,user1和user2都是外键。 什么样的oracle数据库约束或sql命令我应该添加到我的表。 请帮助

+0

使用一个唯一的约束。 – Jens 2015-03-19 06:29:46

回答

1

如果你想拥有一个独特的组合的的requestIdFROMUSER至用户并使得没有任何列不可能是NULL。然后将组合作为主键。

另外,如果你想允许空值,并且只想FROMUSERTOUSER永远是UNIQUE,然后在其上创建唯一索引,并创建一个独特的约束。唯一约束将使用唯一索引。

例如,

CREATE UNIQUE INDEX indx_usr_uk 
    ON table_name (fromUser, toUser); 

ALTER TABLE table_name 
ADD CONSTRAINT user_unique UNIQUE (fromUser, toUser); 

如果你不明确创建唯一索引,那么Oracle将使用任何现有的索引。

0

您可能将'fromUser','toUser'列组合为主键。因为一个用户可以将该好友请求发送给另一个用户,所以只能发送一次。