首页 文章

MySQL组合在FK上是唯一的

提问于
浏览
3

基于这个问题的问题MySQL composite unique on FK's

DB MySQL,存储引擎:InnoDB .

我有一张 table 计划:

  • ID

  • clubber_id(俱乐部表的外键)

  • event_id(事件表的外键)

每个俱乐部每个赛事只能创建一个计划 . 那就是clubber_id和event_id理想情况下应该是唯一的复合键 .

使用clubber_id和event_id创建这样的复合键是否有任何性能方面的要点 . 我已经有了外键,我的业务逻辑中检查了唯一性 .

1 回答

  • 2

    这不是一个性能问题,但在外键上定义一个唯一的复合键可确保数据库中的唯一性 . 如果这样做,您可以跳过检查业务逻辑(只要您可以处理尝试添加重复的失败情况) . 通常,MySQL中的复合键唯一性验证非常快;在数据库中完成它通常不是性能问题,它可以通过删除冗余检查来清理您的业务逻辑 . 从本质上讲,执行此类唯一性检查是数据库领域中的事情;为什么不让您的数据库使用唯一性约束进行验证?

相关问题