0

  我目前正在开发一个有很多用户的网站。这些用户存储在一个表中,每个用户都有一个唯一的 id。该网站将包含用户可以完成的项目,这些项目也存储在具有唯一 ID 的单独表中。
  我需要让用户有一个他们可以查看的页面,该页面将显示他们当前正在处理的所有项目的列表。
  为此,我将设置另一个表,其中每一行都有用户的 ID 以及他们正在处理的项目的 ID。所有这些都可以正常工作,但我希望允许用户根据需要取消他们的项目。我知道如何做到这一点,但我读过直接从 php 脚本中删除行是不安全的,因此用于从 PHP 访问数据库的用户没有“删除”权限。
  我想知道当用户指定要删除的项目时我是否应该随意删除行,或者我是否应该只拥有另一个字段并简单地将每个用户项目行标记为另一个字段中的“已取消”,这样我就可以自己使用它们.

4

2 回答 2

1

您应该做的是,为了最大的安全性,在数据库表中有一个名为“isActive”的参数,或者类似的东西,即表示布尔值的 BIT 数据类型。如果该布尔值为假,则不要从数据库中删除项目,只需隐藏该表数据(不要在网站上显示它,而是将数据保存在数据库中)。这样,您的数据库不仅可以保护您的数据库免受想要破坏数据的恶意用户的攻击,而且如果他们希望恢复数据,项目也可以“恢复”。如果项目存在一段时间,比如 14 天,如果您愿意,只需让服务器删除它,而不是用户。这在过去对我有用。

希望这可以帮助!

于 2013-07-24T16:45:59.420 回答
1

解决此问题的最常见方法是在表中设置一个字段,该字段可用于将记录标记为已删除。就删除而言,这将是一般用户对表的唯一访问权限。有的人还有全删,明确说明操作完成后就再也无法访问了。

就个人而言,我更喜欢保留完全删除权限,让管理员只允许用户将记录标记为已删除。如果您担心空间问题,也可以添加一个上次访问的字段,并按设定的时间间隔安排一次调用,以对标记为已删除且在一定时间内未处于活动状态的任何记录执行完全删除。

于 2013-07-24T16:45:59.873 回答