【问题标题】:MySQL Database Structure for Time Based Chart and Report Generation用于基于时间的图表和报告生成的 MySQL 数据库结构
【发布时间】:2019-03-25 08:00:48
【问题描述】:

我的应用程序将允许用户喜欢或不喜欢产品并留下简短的反馈。我必须创建一个功能来显示图表并根据不同的时间范围生成报告,可能是每年、每月、每周和每天。

我必须通过图表显示在特定时间段内有多少用户喜欢或不喜欢该产品并生成报告。所以我的应用程序应该能够生成特定产品的 2018 年 8 月日图2018 年月度图。如果是每日图表,该图表应该能够显示每天有多少用户喜欢或不喜欢该产品,同样它可能是每周、每月或每年的时间范围

我不确定此类应用程序的数据库结构应该是什么?这是我到目前为止的想法。

products: id, name, descp...etc // products table

users: id, name, email ...etc // users table

user_reactions: id, user_id(foreign key), product_id(foreign key), action(liked or disliked, tinyint), feedback // user_reactions table

data: id, product_id(foreign key), date(Y-m-d), total_like, total_dislike. // data table, will be used to make graph and report

什么,我在想的是,我会在每天 23:59:59 运行一个 cron 作业来统计每个产品的好恶,并将数据添加到最后一个表中,即前面提到的 data 表上面然后将使用这个data 表格来制作图表和报告。我不确定这个数据库结构是否正确或者它有一些看不见的问题(可能是将来?)

注意:我的应用程序将位于PHPMySQL

【问题讨论】:

  • 嗨。这篇文章没有问题。当您编辑它以询问一个时,它应该是适当的。 How to Askminimal reproducible example每个帖子问一个问题。
  • 到目前为止一切顺利。写出实际的SHOW CREATE TABLE 语句和SELECTs。然后看看你是否需要进一步询问。

标签: php mysql sql database-design charts


【解决方案1】:

嗯,您的问题没有正确答案。因为您的问题的答案称为基于意见的答案。你和我肯定会得到足够多的反对票。但是,请听我说我的朋友,因为我曾经处于你的状态。

著名教授Donald Knuth先生的名言

过早的优化是万恶之源

我们应该忘记小的效率,比如大约 97% 的时间:过早优化是万恶之源。然而,我们不应该放弃那关键的 3% 的机会。

这个想法是你必须开始构建。随着您的应用程序的进展,您将面临麻烦,您将面临数据库问题,您的系统可能无法扩展或无法处理一百万个请求。但在你遇到这个问题之前,你不必担心它。

我并不是说你应该盲目地用无限循环构建一个系统,或者创建一个可能导致死锁的表连接。我希望你明白我的意思。

利用您的知识和理解构建系统。因为没有一种直接的方法可以解决问题。 构建一项功能 -> 遇到问题 -> 调整应用程序 -> 冲洗并重复。有一天,您自己的经验会告诉您正确的道路。

根据您给出的描述,我无法确切知道它会如何出现,但我相信它足以满足您最初的几天。随着您的进步,您可能会发现很难添加新功能或添加额外的约束,但改天了。等待它并提出另一个问题。

希望我已经回答了你的问题。

【讨论】:

  • 嗨。没有答案应该包含任何“您的问题没有正确答案。因为您的问题的答案被称为基于意见的答案。您和我肯定会得到足够的反对票。但是仍然”,或者在它是真实的时候发布.这些是拒绝投票、关闭投票和评论的理由。 How to Answer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
相关资源
最近更新 更多