我試圖在postgresql中創建一個表來保存用戶工作項目。每個工作項目在整個系統中都有一個唯一的ID,但是對於該特定用戶也會有一個友好的順序ID。如何在Postgresql中爲每個用戶創建順序ID
到目前爲止,我一直只使用:
CREATE TABLE WorkItems
(
Id SERIAL NOT NULL PRIMARY KEY,
...
);
,但我不知道如何劃分該系列每用戶,也不知道怎樣與序列做到這一點無論是。
所以我想爲用戶看到連續友好IDS
User1: ids = 1, 2, 3 etc.. User2: ids = 1, 2, 3, 4, 5 etc..
,而不是必須處理的唯一ID,但這些項目都具有唯一的ID爲1-8。
我環顧四周相當多,無法找到關於這一主題的文章。也許這只是很難指定和搜索?
我應該存儲在LastWorkIdUsed用戶欄,然後只需手工創建一個友好的ID爲自己的項目?似乎我不必擔心併發和交易。生成數字時,是否有簡單的方法將每個用戶的LastWorkIdUsed傳遞給Postgresql?
還是有指定的順序給用戶的方法是什麼?
也許我的基本設計理念錯了。如何在SQLServer或MySQL中執行此操作?
你必須執行SELECT語句檢索工作項的MAX值WHERE用戶是指定的用戶。然後將1添加到它,這將成爲您的新用戶/工作項目編號。 –
有沒有這樣的事情作爲一個友好的ID。如果用戶看到身份證號碼,我保證他們不會關心他們是否順序。 –
@RobertHarvey:你忘了所有的表鎖定廢話,這是需要的方法工作。除非一次不會有多個連接到數據庫,所以您不必擔心競爭狀況。 –