我觉得我有一个非常基本/愚蠢的问题,但我从来没有看到/阅读/听到过这方面的任何事情。
假设我有一个表用户(userId,name)和一个表首选项(id,userId,language)。这个例子是微不足道的,但可以扩展到具有多层次关系和更多表格的情况 当我的UI请求删除用户时,我首先要显示一条警告,指出其首选项也将被删除。如果在某些时候数据库扩展了更多的表和关系,但软件没有相应调整(客户端没有更新),则应显示通用消息。
我该如何实现?用户界面无法了解整个数据结构,也不应该费心去除所有关系以手动删除所有依赖记录。
我认为这会受到限制 该约束首先是 no action ,因此约束将抛出可由UI捕获的错误。 UI收到确认后,约束应成为级联。
不知何故,我觉得我错了......
答案 0 :(得分:1)
我要做的是:
动态更改数据库关系不是一个好主意!!
干杯,
RB。
答案 1 :(得分:0)
如果您担心用户没有意识到删除的全部影响,您可能需要考虑不实际删除数据 - 而只需在名为“marked_for_deletion
”的列上设置标记即可。 (然后可以在安全时间之后删除条目)
缺点是您需要记住在其他查询中过滤掉标记的行。这可以通过在表上创建一个过滤掉标记行的视图来缓解,然后始终在查询中使用该视图。