是否需要外键?

时间:2020-05-09 17:42:37

标签: mysql database database-design foreign-keys

假设我有四个表:

 Table 1 - Users  - id, name
 Table 2 - Models - id, user_id, name
 Table 3 - Types  - id, user_id, name
 Table 4 - Cars   - id, user_id, model_id, brand_id

从技术上讲,我不需要表Cars中的“ user_id”列。

使用'user_id'fk是一个好习惯吗?冗余?当然,它使编程更容易...

1 个答案:

答案 0 :(得分:0)

您真正不需要的是main.ccuser_id中的列Models
汽车模型和汽车类型与用户没有直接关系。
这种设计很有意义:

Types

如果每辆车仅与1个用户相关,但是如果可以与更多用户相关,则您需要另一个表:

Table 1 - Users  - id, name
Table 2 - Models - id, name
Table 3 - Types  - id, name
Table 4 - Cars   - id, user_id, model_id, type_id
相关问题