mysql - 我应该在这个例子中使用外键吗?

标签 mysql sql database database-design relational-database

我有一个由三个表组成的(示例)数据库:user、car、key用户可以拥有多辆汽车,每辆汽车可以有多个 key 。截至目前,carkey 表有一个外键将它们自己与 usercar 相关联(如下) - 这很好用。

Database Schema Image

我的问题是,如果一辆车不再存在并被删除,这并不一定意味着 key 不再存在。然而,一旦汽车被删除,就无法将 key 关联到用户 - 因为 key 的外键引用的汽车现在已经不存在了。

我知道我可以将用户 ID 与每个 key 一起存储,但我认为这已经达到了使用外键的目的,而且这不是最好的方法。

那么,解决这个问题的最可接受的方法是什么?

谢谢!

最佳答案

因为 key 还在那里并且有一定的意义(因为你不想删除 key ), 我会“软删除”汽车,例如。向表 car 添加一个位列“deleted”。

关于mysql - 我应该在这个例子中使用外键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45535617/

相关文章:

php - SQL/Wordpress/AJAX : Format JSON With Loop

sql - 创建 SQL 标识作为主键?

MySQL 从特定 ID 中选择直到匹配条件

mysql - 如何根据MySQL中不同的列值组合行

sql - 与主键混淆

MySQL 连接让我感到困惑,我总是遇到语法错误

mysql - 如何在 IN() 函数内部使用 group_concat ?

php - "No database selected"

java - 使用表值填充组合框

java.lang.StringIndexOutOfBoundsException : index=0 length=0 in get sqlite database 异常