激活和停用帐户

时间:2017-10-17 13:19:29

标签: jsp servlets

我正在开展一个项目,其中管理员添加所有用户注册详细信息并为用户创建帐户。用户使用该帐户,直到用户为该管理员工作。如果用户离开该管理员,则admin会停用该帐户,而不是删除该帐户。他将停用,因为将来如果同一员工回来,他就会重新激活该帐户。

我将所有用户数据存储在数据库中,现在可以添加帐户,编辑帐户,删除帐户。但不是删除我想要停用,以便将来我可以再次重新激活,如上所述

3 个答案:

答案 0 :(得分:1)

在用户注册表中添加标记列,并在每次用户是否为活动用户时进行检查,并相应地采取相应措施。

以下是一个示例(由于您尚未共享代码,因此有一些假设): -

假设您有一个名为users的用户注册表,其中包含4个字段。

users(id, name, email, password)

现在,再向它添加一列state,所以更新的表结构看起来有点像这样。

users(id, name, email, password, state)

当用户尝试登录时,您可能会这样查询,

Select count(*) from users where email = <email_of_user> AND password = <pass_of_user>;

将其改为此;

Select count(*) from users where email = <email_of_user> AND password = <pass_of_user> AND state = 'ACTIVE'; // you can use any value to denote active/inactive user.

如果你的管理员删除了一个帐户,实际上不会向数据库发出delete查询,只需将该用户的状态更新为“非活动”。

例如:

UPDATE users SET state = 'INACTIVE' where email = <email_of_user>;

希望这能清除您需要的每一点,或者至少让您有机会解决它。

答案 1 :(得分:0)

我的解决方案是删除帐户实际上将数据库更新特定列作为IS_ACTIVE,此列将为A表示活动,N表示非活动,例如。

在您对select / view和update的查询中,始终检查IS_ACTIVE是否等于A值。

  1. 添加帐户将使用IS_ACTIVE = A
  2. 创建
  3. 编辑帐户将仅更新IS_ACTIVE = A
  4. 的记录
  5. 删除帐户只会更新IS_ACTIVE = A到IS_ACTIVE = N
  6. 的记录

    这样你也永远不需要删除记录。

答案 2 :(得分:0)

更简单的解决方案是在数据库中添加一个ex: Enabled 字段。

...然后您可以相应地调整您的应用程序逻辑。

也许其他一些字段可用作LastDeleteDate或DeletedBy ...可能性是无穷无尽的。