2015-03-19 104 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'列組合爲主鍵。因爲一個用戶可以將該好友請求發送給另一個用戶,所以只能發送一次。