首页 > 解决方案 > 只允许每个 id 列有一次 true 吗?

问题描述

我有这张桌子:

ID | genre_id | is_best_in_genre | movie_name
--------------------------------
1  | 3        | 0                | Hateful Eight
2  | 3        | 0                | Django Unchained
2  | 3        | 1                | Inglorious B
2  | 3        | 0                | Once Upon A Time in Hollywood

is_best_in_genre只能为真 (1) 一次genre_id。每种类型只能有一部最佳电影。我将如何做出这样的约束?

标签: mysql

解决方案


替代想法:

处理此问题的更合适、更规范的方法可能是创建一个单独的“best_in_genre”表,并在genre_id.

这也更容易更新,因为在选择新的“最佳”时,您不需要确保所有内容都为 0。


推荐阅读