基于此问题的问题MySQL composite unique on FK's
DB MySQL,存储引擎:InnoDB。
我有一张桌子计划:
每个俱乐部每个赛事只能创建一个计划。 那就是clubber_id和event_id理想情况下应该是唯一的复合键。
使用clubber_id和event_id创建这样的复合键是否有任何性能指标。我已经有了外键,并且在我的业务逻辑中检查了唯一性。
答案 0 :(得分:2)
这不是一个性能问题,但在外键上定义一个唯一的复合键可确保数据库中的唯一性。如果这样做,您可以跳过检查业务逻辑(只要您可以处理尝试添加重复的失败情况)。通常,MySQL中的复合键唯一性验证非常快;在数据库中完成它通常不是性能问题,它可以通过删除冗余检查来清理您的业务逻辑。从本质上讲,执行此类唯一性检查是数据库领域中的事情;为什么不让您的数据库使用唯一性约束进行验证?