这是我的学校项目。我对eForum部分感到非常兴奋。我试图删除用户,删除的用户的所有线程和回复也将被删除。
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。然后,它将执行delete sql语句删除某个用户。
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语句。
然而,在我删除了一些用户之后,被删除用户的线程和回复仍然存储在数据库中。我目前在数据库中使用一个用户表和一个线程表。有没有办法喜欢所谓的'同步'两个表?它是内部联接吗?
提前致谢。
答案 0 :(得分:0)
这似乎是使用Cascade Delete(http://support.microsoft.com/kb/304466)建立关系的完美案例
级联更新和删除
对于实施参照完整性的关系,您可以 指定是否要Microsoft Access自动级联 更新或级联删除相关记录。如果您设置这些选项, 删除和更新通常会被阻止的操作 允许引用完整性规则。删除记录或时 更改Microsoft Access中的主表中的主键值 对相关表进行必要的更改以保留引用 完整性。
但请注意,应谨慎使用Cascade Delete。这些帖子引用了SQL Server,但这些想法适用于任何数据库:
在大多数情况下,我不会先删除记录,我会在以后删除它们以便删除,人们改变主意的频率非常值得注意。