我有一張用戶上傳的對象表。每個用戶可以有任意數量的對象。我希望每個對象有一系列的標識符,像這樣:序列字段,跟蹤主鍵/序列對的單個序列
USERNAME OBJECTNAME OBJID
Kerin cat 1
Kerin dog 2
Narcolepsy pie_tins 1
Kerin mouse 3
我想爲OBJID是一個序列,但每個用戶名字段單獨跟蹤序列號。我可以通過首先查詢數據庫並選擇最高的OBJID,然後將該值遞增1並在INSERT中使用它來完成此操作,這可能很好,因爲用戶很難一次運行兩次上載,但是查詢開銷和我做錯的感覺讓我想找到更好的方法。
首先,主鍵必須是唯一的,所以用戶名不是你的。其次,你需要什麼樣的東西你的OBJID? – 2011-04-24 05:03:55
當我說主關鍵詞時,我顯然比我想象的更疲倦。該帖子已被編輯。 OBJID將被用來明確地引用對象,但現在我試圖回答這個問題,我不再確定爲什麼標識符必須是順序的 - 我正在檢查是否有任何東西會傷害字段一個簡單的UUID。 – 2011-04-24 05:11:28
如果你不需要它們是連續的,那麼你可能會逃避在表中添加一個'serial'類型的PK(或'bigserial')。這些數字仍然是唯一的每個用戶名,但它實現起來很簡單,你不會有UUID的醜陋。 – 2011-04-24 05:16:26