【发布时间】:2009-11-04 00:36:51
【问题描述】:
我有以下三个表:
场地、活动、实例。
Events 有一个 Venue(Venues 有很多 event),Events 有很多 Instances。
例如,事件“终结者 2”是一部电影,它有一个特定的电影院作为其地点,并且将有该电影的许多实例(日期时间)。
我需要运行一个查询,这让我失去了满足以下条件的场地:
地点是 x。 场地有某种类型的事件。 这些事件在特定时间段内具有实例。
我已经通过场地和事件的 JOIN(事件有场地的外键)和 WHERE 子句来确保事件属于某种类型,从而实现了前两个。现在我需要确保事件在特定时间段内也有实例。
我是否在 Instances 表上添加另一个 JOIN(Instances 有一个事件的外键)和另一个 WHERE 子句?
我应该从这样的双连接、双 where 查询中获得什么样的性能?
有什么建议可以更好地做到这一点吗?
【问题讨论】:
-
过早优化真的是万恶之源吗? stackoverflow.com/questions/211414/…
-
@Rubens:规范化是为了提高性能的想法表明了对规范化是——参考完整性的根本误解。
-
@Rubens 是的,我很好地考虑了这样一个事实,即对于性能我可以有多个事件,每个事件都有不同的时间等。并且以某种方式将事件链接在一起,这样如果一个改变我可以改变其他的,但考虑后果之后问题太多了。