Postgres表包含更多行或更少行,每行包含更多数据

时间:2015-11-16 16:58:58

标签: sql database postgresql

我需要跟踪与fitbit步骤非常相似的用户信息,并且正在寻找有关数据建模的两个想法的反馈。

我的要求是以分钟为单位存储样本数量。这些也将与用户(执行步骤),用户完成的挑战和任务相关联。 (游戏化)

现在我可以将所有样本存储在一个表中

id(pk)  | user  | start date       | steps | challengeId
uuid1   | user1 | 1/1/2015 10:00PM | 100   | challenge1
uuid2   | user1 | 1/1/2015 10:01PM | 101   | challenge1
... can have hundreds of minutes with a challenge 
uuid3   | user1 | 1/1/2015 10:02PM | 102   |
uuid4   | user2 | 1/1/2015 10:00PM | 100   |

所以user1在晚上10:00到晚上10:02之间有303步,但是只在晚上10:00和晚上10点01分参加challenge1

但是,我不认为这可以扩展,因为假设一年中单个用户的理想数据

12(一天中的小时数)* 60(一天中的分钟数)* 365(一年中的天数)=数据库中的262,800条记录,适用于1位用户。考虑到100k用户,该表将变得非常大。

我也在考虑将会议记录分组为会话概念的想法,其中看起来像是

id(pk)  | user  | start date       | steps     | challengeId
uuid1   | user1 | 1/1/2015 10:00PM | [100,101] | challenge1
uuid2   | user1 | 1/1/2015 10:01PM | [102]     | 
uuid3   | user2 | 1/1/2015 10:02PM | [102]     |

其中steps数组假定间隔为1分钟。根据用例,挑战可能有数百/数千分钟。

我认为第二种方法是有道理的,因为它意味着查询单个记录与数百或数千,并且可以将表缩小数百倍,但如果对此方法或任何想法有任何疑问,我们将不胜感激。

0 个答案:

没有答案