我注意到现在看起来非常明显的模式。 需要得到您对此的意见。关系模型中OneToMany关系性能的一般设计原则
假设在关系模型中具有表1到表2之间的一对多关系。 例如,表1可以是用户表,表2可以是登录所有用户登录的登录表。一个用户可以多次登录。 给定一个用户,我们可以找到该用户的所有登录。
想到的第一个想法是仅将登录名存储在登录表中。这是设计之一。
但是,如果由于某种usecases我们感兴趣的用户的特定登录(说上次登录的)是“通常是个好主意”缓存在用户表本身的最后登录时间。 是吗?
设计2显然是多余的,因为我们总能找到通过执行加入,然后丢弃所有,但先前登录上次登录的时间。
对于一个用户应该没问题。但是如果你想为所有的用户找到一个SQL查询的最后登录时间,那么设计1将涉及一个连接和一个子查询来过滤不需要的结果。
但考虑到我们的用例,是去年的登录时间存储在用户表本身,这将拯救我们从加入一个好主意。是对的吗?
这是您在设计模式时看到的通用模式吗?
我认为当前会话ID通常用于跟踪这一点。 – Aiias 2013-03-10 05:21:21
我刚刚用这个作为例子,我指的是通用许多设计原则。另外,我想制作这个问题社区维基。 – 2013-03-10 05:24:20
您正在评估设计阶段的性能方面。请记住,[过早优化是所有邪恶的根源](http://en.wikipedia.org/wiki/Premature_optimization#When_to_optimize) – 2013-03-10 05:43:29