php - 删除用户在演示站点中添加的数据的最佳做法?

标签 php postgresql

这是我第一次需要制作演示站点(这是用 PHP 和 PostgresSql 中的一些示例数据完成的)。目前我们允许用户登录并执行网站上可用的操作。我想要什么要做的是,一旦用户完成操作,我需要删除用户创建的数据。

但问题是,如果用户在演示域中创建的数据库中插入数据,那么如果我删除域数据,可能会有另一个用户在另一个 session 中插入或删除数据。所以我不想显示其他用户操作(比如insert,delete)给别人,不会冲突,怎么办。

最佳答案

有几种方法可以做到这一点。

  1. 使用 session 。不知道这是否可行,但如果您可以简单地将所有数据放入 SESSION 中的模拟对象中,就可以了。
  2. 这实际上可能是 1b。您可以使用 cookie 对 SESSION 做同样的事情,但不可否认它更烦人。
  3. 生成模拟表——每次新用户登录时,为该用户创建一系列唯一的表,并以该用户的 UID 为前缀。是的,它确实会造成模式蔓延,但这也意味着您可以轻松查看哪些空间可以回收。
  4. 在数据库中以某种方式“标记”数据。这可能意味着您将一些额外的数据添加到某些用户数据的前面,从而在数据库中将其标记为临时数据。但是,这样做的问题是您的 SERIAL 列无法正确重置,因为您的序列在您删除数据后仍将保留在当前位置。

关于php - 删除用户在演示站点中添加的数据的最佳做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7647292/

相关文章:

php - 如何从 Python 运行 php 代码字符串?

php - php中如何获取字符串的宽度?

sql - 使用 postgres rank 函数来限制前 n 个结果

database - 通过 bash 断开 pgadmin 的连接

python - 无法联系 pgAdmin 4 服务器 : Fatal error

sql - 数据值 "0"在 redshift 中有无效格式错误

php - 数组空白回显问题

php - INSERT INTO WHERE NOT IN or NOT EXIST where table origin 有重复项

php - 使用 LEFT JOIN 计算行数

sql - 比较 inner join 和 where in 的用法