这是我第一次需要制作演示站点(这是用 PHP 和 PostgresSql 中的一些示例数据完成的)。目前我们允许用户登录并执行网站上可用的操作。我想要什么要做的是,一旦用户完成操作,我需要删除用户创建的数据。
但问题是,如果用户在演示域中创建的数据库中插入数据,那么如果我删除域数据,可能会有另一个用户在另一个 session 中插入或删除数据。所以我不想显示其他用户操作(比如insert,delete)给别人,不会冲突,怎么办。
最佳答案
有几种方法可以做到这一点。
- 使用 session 。不知道这是否可行,但如果您可以简单地将所有数据放入 SESSION 中的模拟对象中,就可以了。
- 这实际上可能是 1b。您可以使用 cookie 对 SESSION 做同样的事情,但不可否认它更烦人。
- 生成模拟表——每次新用户登录时,为该用户创建一系列唯一的表,并以该用户的 UID 为前缀。是的,它确实会造成模式蔓延,但这也意味着您可以轻松查看哪些空间可以回收。
- 在数据库中以某种方式“标记”数据。这可能意味着您将一些额外的数据添加到某些用户数据的前面,从而在数据库中将其标记为临时数据。但是,这样做的问题是您的
SERIAL
列无法正确重置,因为您的序列在您删除数据后仍将保留在当前位置。
关于php - 删除用户在演示站点中添加的数据的最佳做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7647292/