Postgresql
一個表中一組行的唯一 ID
我知道標題有點奇怪,但我真正想做的很簡單。在我的 Postgres 數據庫中,使用者創建個人資料並上傳圖像。
user_id: 1, photo_id: 1
現在,第二個使用者創建了個人資料並上傳了兩張圖片。
user_id: 2, photo_id: 1, photo_id: 2
在我的照片表中,如何從 user_id 和 photo_id 的組合中創建唯一標識符?兩者在表中都不是唯一的,但它們的組合應該是唯一的。
**首先,
photo_id
在桌子上應該是獨一無二的。**但是,忽略聲音練習,您仍然可以使用複合材料來做到這一點PRIMARY KEY
CREATE TABLE photos ( user_id int, photo_id int, PRIMARY KEY (user_id, photo_id) ); INSERT INTO photos (user_id,photo_id) VALUES (1,1),(1,2); --duplicate already exists INSERT INTO photos (user_id,photo_id) VALUES (1,1);
複合自然主鍵還不錯,但是我不喜歡將它們放在多個代理鍵上。如果你要創建一個 ID,不妨讓它獨一無二。