[問題] 序號連貫的邏輯問題

看板C_Sharp (C#)作者 (1+1≠2)時間11年前 (2014/07/06 22:47), 11年前編輯推噓8(806)
留言14則, 10人參與, 最新討論串1/1
請問一下,我將資料存入DB時,有個欄位會依地區存放序號,且序號建立連續 例如: 地區 序號 姓名 KH 01 王曉明 TPI 01 林依沉 KH 02 劉德滑 KH 03 灣灣 CHA 01 張學有 KH 04 劉承錄 假設,某A使用者將 "KH 03 灣灣" 刪除, 那麼,下次我再建立KH時,我要如何得知 03這個序號是可以被建立的? 還是,我只能用迴圈一個一個try?不曉得有啥比較好的方式。 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.111.82 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1404658062.A.899.html

07/06 23:42, , 1F
select max數字欄位 where kh
07/06 23:42, 1F

07/06 23:52, , 2F
但是 select max 會抓到04..
07/06 23:52, 2F

07/07 00:15, , 3F
你把中間砍了 那後面的序號要不要往前遞補?
07/07 00:15, 3F
不用。

07/07 01:00, , 4F
是可以直接在 SQL 做到, 不過效率不會太好
07/07 01:00, 4F

07/07 01:01, , 5F
有什麼非讓序號連續不可的理由嗎?一般而言根本沒差才是
07/07 01:01, 5F

07/07 01:39, , 6F
用trigger建表記錄刪除的id,每次建id都從這select看看
07/07 01:39, 6F

07/07 05:42, , 7F
序號由另ㄧ表控制
07/07 05:42, 7F

07/07 10:50, , 8F
要不要轉database版
07/07 10:50, 8F

07/07 23:15, , 9F
問題點在於說明取號規則為何,這樣就知道該如何設計。
07/07 23:15, 9F
不好意思。因為會有另一隻程式針對"序號"這個欄位,並使用序號加以處理後續的資料。 例如:KH-02的人員,分到XXXGROUP。KH-03人員分配到YYYGROUP。 每個GROUP後續還有其他處理流程,所以,不方便後面的序號直接往前遞補。...謝謝 ※ 編輯: don750421 (36.239.103.169), 07/08/2014 22:20:36

07/09 05:48, , 10F
序號是資料庫給的,不用寫程式
07/09 05:48, 10F

07/10 15:53, , 11F
樓上你說的不適用本例子耶,他要依地區給
07/10 15:53, 11F

07/10 15:55, , 12F
我也認為到底有什麼理由要讓你大費周張把被刪的序號再拿回
07/10 15:55, 12F

07/10 15:55, , 13F
來用?
07/10 15:55, 13F

07/28 02:02, , 14F
刪除的id另表記錄是簡單正解,效能最高
07/28 02:02, 14F
文章代碼(AID): #1JkM6EYP (C_Sharp)
文章代碼(AID): #1JkM6EYP (C_Sharp)