2014-10-28 14 views
0

我建立了一個軟刪除系統,其中包含了下列的表:保持的記錄訂單後軟刪除

- ID (Auto increments from 1) 
- Category 
- Title 
- Is_Deleted 
- Timestamp (Created) 

樣本數據(3行):

1 Department Dd1x1 0 2014-10-24 18:41:54 
2 Logistics L2x14 0 2014-10-24 16:55:27 
3 Transit  T4y3 0 2014-10-24 17:09:27 

軟在更新記錄時,刪除也被設置爲工作(業務需求)。所以,如果我更新類別「部門」爲「部門數據」,我這樣寫:

UPDATE categories_latest SET Is_Deleted = 1 WHERE ID = 1; 
INSERT INTO categories_latest(Category, Title, Is_Deleted) VALUES('Department Data', 'Dd1x1', 0); 

本身工作正常的代碼,但是當我顯示在前端這個數據,它改變的順序記錄,由於被訂購ID。解決這個問題的唯一方法就是創建一個帶有某種「Order」變量的額外列,查詢在檢索前必須排序。

是否有更簡單的方法來處理問題,並允許記錄的順序保持不變?

+0

您能否提供一個示例如何訂購? – 2014-10-28 09:48:23

+0

只需一個簡單的select語句(默認情況下)通過ID命令,就是我現在正在使用的!我可以在代碼中添加它是否有幫助:) – 2014-10-28 09:58:10

回答

0

除了添加新記錄,您可以將最後一個值保存到其他列。它不會創建多餘的記錄,訂單也會一樣。

+0

這是我的第一個想法,但是幾次軟刪除線,沒有明確的線連接當前值和最舊的值。只有導航的方法是做一串選擇語句,一次慢慢地往回走,直到找到我需要的。 糾正我,如果我錯了,並有另一種方式通過這個問題,請! :) – 2014-10-28 09:59:25

+0

然後,唯一可以做的就是維護關係,如鏈接列表。 「部門」的主鍵在修改時會保留「部門數據」,其下一個值將保留PK,等等。 – JustCoding 2014-10-28 12:29:40

+0

我從你的回答中得到了這一點,但正如我指出的那樣,在4或5次更改之後,這變得效率低下。 :) – 2014-10-28 12:35:23