我为一个包含以下列的表构建了一个软删除系统:
- 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"变量,查询在检索之前必须对其进行排序。
有没有一种更简单的方法来处理这个问题,并允许记录的顺序保持不变?
您可以将最后一个值保存到其他列中,而不用添加新记录。它不会创建多余的记录,订单也会相同。