【发布时间】:2014-03-17 12:13:29
【问题描述】:
简化示例:两张表 - 人员和时间。目标是跟踪一个人走过门口的所有时间。
一个人每天在时间表中可能有 0 到 50 个条目。
跟踪这些记录的正确和最有效的方法是什么?是吗
times table
-----------
person_id
timestamp
我担心这张表会很快获得超过一百万条记录。插入和检索时间至关重要。
另外:显然是非标准化的,但这样做会更好
times table
-----------
person_id
serialized_timestamps_for_the_day
date
我们需要访问此人的每个时间戳,但仅查询日期或此人 ID 的记录。
【问题讨论】:
-
您的简化示例与问题的其余部分不匹配。要跟踪一个人走过门口的天数,您只需要 person_id 和日期,每天最多 1 条记录。
-
一个人一天可以“穿过门口”多次吗?如果是,您是否需要分别跟踪所有这些事件?
-
@Brian 更新更清晰。需要跟踪人走过门的个人时间,但可以按日期分组。无论架构如何,都只会查询 person_id 和 date。
-
@BrankoDimitrijevic 一个人每天可以穿过门口 0 到 50 次。我们需要能够访问每个单独的时间戳,但只会查询有关 person_id 和/或日期的记录。因此,我们可以将所有一天的时间戳分组为 1 条记录,但该记录可能在 1 天内更新 50 次。
标签: sql performance database-design architecture one-to-many