我注意到一个现在看起来很明显的模式。需要征求您对此的意见。
假设在关系模型中有从表 1 到表 2 的一对多关系。例如,表 1 可以是用户表,表 2 可以是记录所有用户登录的登录表。一个用户可以多次登录。给定一个用户,我们可以找到该用户的所有登录信息。
想到的第一个想法是将登录名仅存储在登录表中。这是设计一。
但是,如果对于某些用例,我们对用户的特定登录感兴趣(比如最后一次登录),那么在用户表本身中缓存最后一次登录时间“通常是一个好主意”。那正确吗?
设计 2 显然是多余的,因为我们总是可以通过执行连接然后丢弃除先前登录之外的所有内容来找到上次登录时间。
对于一个用户来说,两者都应该没问题。但是,如果您想通过 SQL 查询查找所有用户的上次登录时间,那么设计 1 将涉及连接和子查询以过滤掉不需要的结果。
但是考虑到我们的用例,最好将上次登录时间存储在用户表本身中,这将使我们免于加入。那正确吗?
这是您在设计模式时看到的通用模式吗?