【问题标题】:Organizing a database to store/fetch user events and dates组织数据库来存储/获取用户事件和日期
【发布时间】:2020-06-22 10:05:29
【问题描述】:

我正在寻求一些帮助,以构建适合我需要的数据库架构:

我的用户(30 到 50 人)每天都会在我的网站上注册活动。 他们每天最多可以注册 100 个事件(每个事件都有一个特定的 ID),我需要存储他们注册的事件的日期 dd/mm/yyyy,这样我就可以在网站上显示他们的完整历史记录,同时还允许他们过滤它按日期或显示统计信息(例如过去一周每天的平均事件数)。

我从来没有做过那种数据库,我不知道该走哪条路。 我想每天在我的数据库中自动添加一列,按日期组织数据,但我读到这会不必要地使我的数据库超时。

另一种方法是将同一用户的所有事件存储在一个单元格中,然后在我进行查询时使用 php 解析数据。
我真的不知道该走哪条路才能提高效率。

【问题讨论】:

  • “我需要存储他们注册的事件的日期 dd/mm/yyyy” - 为什么是 that 格式?您应该使用保存为YYYY-MM-DD 的MySQL 内置日期功能,而不是使用DATE 作为其(列)类型;它也使查询变得更加容易。
  • 每个事件都应该有自己的行。将其链接到用户的参考表

标签: php mysql sql database database-design


【解决方案1】:

我建议你创建两个表:

事件表:存储有关每个事件的数据 事件日志表:存储有关每个事件所做更改的日志

在日志表中,您可以存储 log_id、event_id、created_date、updated_date 和 log_data 以存储有关日志的有意义的信息(类似于 git 提交中的 cmets)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多