我正在开展一个项目,其中管理员添加所有用户注册详细信息并为用户创建帐户。用户使用该帐户,直到用户为该管理员工作。如果用户离开该管理员,则admin会停用该帐户,而不是删除该帐户。他将停用,因为将来如果同一员工回来,他就会重新激活该帐户。
我将所有用户数据存储在数据库中,现在可以添加帐户,编辑帐户,删除帐户。但不是删除我想要停用,以便将来我可以再次重新激活,如上所述
答案 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值。
这样你也永远不需要删除记录。
答案 2 :(得分:0)
更简单的解决方案是在数据库中添加一个ex: Enabled 字段。
...然后您可以相应地调整您的应用程序逻辑。
也许其他一些字段可用作LastDeleteDate或DeletedBy ...可能性是无穷无尽的。