首页 > 解决方案 > 在SQL中的一个表的一行中保留一周或一天比较好?

问题描述

我正在做一个系统来保持用户的存在,你知道,如果他们在那一天。

我只是想知道将整整一周的数据保留在表格的行中还是每行仅保留一天的数据是否更实用。

如果每行是一周,它将具有以下属性:

用户:varChar
第 1 天(星期日):dateTime 第 2 天(星期一):dateTime ...
第 7 天(星期六):dateTime

如果是每天:

用户:varChar
日期:dateTime
存在:布尔值

所以?你怎么看?

标签: database

解决方案


*假设您使用的是 MySQL,或具有内置日期/时间类型的数据库。

如果您希望在未来获得最大的灵活性(因为您无法预测如何使用这些数据),则将日期/时间间隔设为通用:将“存在条目”存储在数据库中,以指示用户何时存在。它会有这样的结构:

表存在_条目 user_id (int) | 来自(MySQL 日期时间)| 到(MySQL 日期时间)

这很好,因为如果用户每天或每周在多个时间间隔出现,您可以将它们全部记录在报告中。将来,如果您想将报告更改为双周或每月,没问题。


推荐阅读