gpt4 book ai didi

java - MySQL中如何处理锁定帐户

转载 作者:行者123 更新时间:2023-11-29 10:14:20 24 4
gpt4 key购买 nike

我正在为我教堂的执事开发一个 Web 应用程序。虽然我在使用多种语言进行编码方面拥有丰富的经验,但在决定满足我的组织的这一需求之前,我还必须进行任何认真的数据库建模。

我非常熟悉在现有数据库上编写 sql/ddl 查询(严格来说是 mysql 控制台、Spring MVC、Boot、Java 等)。但是,自从上大学以来,我就不再需要考虑标准化、2nf、3nf、1:1、1:多等等……至少可以说,这是一次令人羞愧的经历,试图用多年来学到的数据库理论来刷新我的内存之前并尝试应用这些概念。

我创建了一个模型,至少在我看来,可以满足用户的需求

我的具体问题是关于锁定帐户的。我确实阅读了几篇有关它的文章,这只会让我更加困惑如何使用给定的数据模型来处理这个概念?我真的很感激任何其他建议和/或批评;我绝对理解从失败中学习的概念和力量......谢谢。

用例:

1. Users holding office in a particular year can sign into the web 
application, and view their information *(Name, Account Status,
Ordained, Team number, Calendar of their assigned duty days)*.
They can only update their personal info (name, address,
phone). Note: The account will be created for users.

2. Director, Asst. Director and System admin can log into the web
application (admin dashboard) and see a data table of all users,
w/ all relevant fields(view). This group has full read-write
privileges.

我在模型中有一个锁定的表,但不确定这是否是处理将用户状态从 Activity 状态更新为非 Activity 状态的正确方法。如果处于非 Activity 状态,他将无法登录 Web 应用程序。如果用户尝试登录 x 次但失败,我也会使用此选项。此外,将以前的用户在数据库中保留 x 年(当然处于非 Activity 状态)会很有帮助(报告和统计)。

最佳答案

抱歉没有使用图表(我不使用图表工具)。这是非常基本的示例,其中包含审计表的相关位:

CREATE TABLE users (
user_id SERIAL,
-- ...
);
-- ...
CREATE TABLE user_updates_audit (
audit_id SERIAL,
user_id INT NOT NULL,
audit_timestamp TIMESTAMP NOT NULL default now(),
-- just free form text describing applied update (maybe old value, new value, etc)
audit_text VARCHAR(1024) NOT NULL
);

ALTER TABLE user_updates_audit ADD CONSTRAINT user_updates_audit_pk PRIMARY KEY (audit_id);
ALTER TABLE user_updates_audit ADD CONSTRAINT user_updates_audit_user_id_fk FOREIGN KEY (user_id) REFERENCES users;

当然,您可以从这里进行扩展,例如,将自由格式的 audit_text 更改为一些更严格的方案,例如可能的更新操作(ENABLEDDISABLED 等)和正在更改的实际值的字典的外键。或者其他一些更适合您的情况的更复杂的方案。

但自由形式审核是一些起点。

这里的主要值(value)是您可以查看系统中重要实体的所有修改历史记录,而不仅仅是当前状态。

关于java - MySQL中如何处理锁定帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50356108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com