MySQL组合在FK上是唯一的

时间:2011-07-25 19:41:11

标签: mysql database-design foreign-keys innodb

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

DB MySQL,存储引擎:InnoDB。

我有一张桌子计划:

  1. ID
  2. clubber_id(俱乐部表的外键)
  3. event_id(事件表的外键)
  4. 每个俱乐部每个赛事只能创建一个计划。 那就是clubber_id和event_id理想情况下应该是唯一的复合键。

    使用clubber_id和event_id创建这样的复合键是否有任何性能指标。我已经有了外键,并且在我的业务逻辑中检查了唯一性。

1 个答案:

答案 0 :(得分:2)

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