首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP和SQL隐藏不再使用的记录,而不是永久删除它

使用PHP和SQL隐藏不再使用的记录,而不是永久删除它
EN

Stack Overflow用户
提问于 2016-07-26 16:07:08
回答 2查看 465关注 0票数 2

我正在为我最后一年的项目做一个送餐系统。对于数据库,我需要隐藏不再使用的记录,而不是永久删除记录。例如,如果卖方不想出售某一餐,他们可以禁用该餐,但该餐的记录仍然可以在数据库中使用。我需要通过使用PHP和SQL来实现这一点。有人能给我一些关于如何实现这一点的想法吗?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-26 16:10:04

您所指的功能是所谓的软删除。在软删除中,记录在逻辑上从数据库表中删除,而不实际删除记录本身。

实现软删除的一种常见方法是添加一个列,该列跟踪某个列是否已被软删除。为此,您可以使用TINYINT(1)类型。

您的表创建语句应该如下所示:

代码语言:javascript
复制
CREATE TABLE yourTable (`deleted` TINYINT(1), `col1` varchar, ...)

要查询逻辑上没有删除的记录,可以使用:

代码语言:javascript
复制
SELECT *
FROM yourTable
WHERE deleted <> 1

同时,如果有一个软删除列,也可以很容易地删除陈旧的记录。

票数 6
EN

Stack Overflow用户

发布于 2016-07-26 16:51:12

在许多情况下,额外的deleted列是一个很好的选择。但你必须非常小心,你总是检查它,在某些情况下,这是很难控制的。

另一个很好的选择是具有相同结构的“影子表”,并将删除过程更改为先复制到影子表,然后再删除。这意味着您的原始表是安全使用的,但是您不能对所有数据执行查询(虽然UNION可以帮助您)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38594857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档