Sql 删除时同步两个数据库表中的数据

Sql 删除时同步两个数据库表中的数据,sql,ms-access,Sql,Ms Access,这是我的学校项目。我在埃弗鲁姆区。我试图删除一个用户,被删除用户的所有线程和回复也将被删除 public boolean deleteUser() { boolean success = false; DBController db = new DBController(); db.setUp("IT Innovation Project"); String sql = "DELETE FROM forumUsers where users_id = "

这是我的学校项目。我在埃弗鲁姆区。我试图删除一个用户,被删除用户的所有线程和回复也将被删除

    public boolean deleteUser() {
    boolean success = false;
    DBController db = new DBController();
    db.setUp("IT Innovation Project");
    String sql = "DELETE FROM forumUsers where users_id = " + userID + "";
    if (db.updateRequest(sql) == 1)
        success = true;
    db.terminate();
    return success;
}
此方法检索表的第一列的值并将其存储为userID。然后,它将执行deletesql语句来删除某个用户

    public boolean deleteThread() {
    boolean success = false;
    DBController db = new DBController();
    db.setUp("IT Innovation Project");
    String sql = "DELETE FROM forumTopics where topic_id = " + threadID
            + "";
    if (db.updateRequest(sql) == 1)
        success = true;
    db.terminate();
    return success;
}
对于这个方法,它将获取显示所有线程的另一个表的第一列的值,并执行delete sql语句

但是,在我删除了一些用户之后,被删除用户的线程和回复仍然存储在数据库中。我目前在数据库中使用一个用户表和一个线程表。有什么方法可以让这两个表都“同步”吗?是内部连接吗


提前感谢。

这似乎是使用级联删除()建立关系的完美案例

级联更新和删除

对于强制引用完整性的关系,您可以 指定是否希望Microsoft Access自动级联 更新或删除相关记录。如果设置这些选项, 删除和更新通常会被阻止的操作 允许引用完整性规则。当您删除记录或 更改主表中的主键值,Microsoft Access会 对相关表进行必要的更改以保留引用 正直

但是请注意,级联删除应该非常小心地使用。这些帖子涉及SQL Server,但这些想法适用于任何数据库:

在大多数情况下,我并不是先删除记录,而是在时间戳上删除记录,以便在以后删除。值得注意的是,人们经常改变主意


那我该怎么办?我现在有点困惑你想做什么?这是您的项目,因此您必须决定是否应在这么多天内将该用户标记为已删除,并且只包括未标记为已删除的用户的记录,或者您是否希望将记录复制到存档然后删除,或者您的法律规定,一旦用户说要删除,删除所有记录是您的义务。因此,我只需在sql语句中加入delete CASCADE,即可创建用户、线程和回复?对不起,我的错误。我忘了提到这是一个管理网站。只有管理员可以执行删除。您提到MS Access,这意味着您有一个用于设计表、关系和查询的界面。我将使用它来正确构造数据库,然后编写代码。