简化案例:
存储
检索
假设表变得庞大,那么两种查询都会变得很慢吗?
如何处理这个?同时存储在一个详细的表格中(每个链接每个用户每次点击一行)和一个汇总表(每个链接每个用户一行)?我听说过“卷起”数据,但我不知道这意味着什么。
使用的技术:MySQL,PHP(和Javascript)
答案 0 :(得分:1)
如何处理这个?同时存储在一个详细的表格中(每个链接每个用户每次点击一行)和一个汇总表(每个链接每个用户一行)?
是的,但添加DATETIME列,以便您可以执行(a)中提到的期间检查。使用NOW()
函数填充DATETIME列以获取当前日期和时间。时间。关于选项(a)的一些注意事项是标准将最小化所汇总的数据,因此性能不应该太大。此外,可能不应对详细信息表建立索引,因为索引仅帮助获取数据 out ,并减慢将数据放入表。
超级用户奖励可能应该是一个单独的表,但这意味着您的详细信息表需要通过其用户ID或URL与超级用户相关联。 userid
将是更好的选择。
我听说过“卷起”数据,但我不知道这意味着什么。
数据库原则是仅存储您需要的内容 - 可以使用SUM和COUNT等函数计算摘要数据。您可以create a view,它可以像表一样查询,但不存储任何数据。
答案 1 :(得分:1)
易。 : - )
一个用户表,我称之为用户。
一个点击表,我称之为ClickEvent。
每个不同链接有一个表,我称之为HyperLink(避免使用DB中的“链接”一词)
根据我们所知道的(不多),用户表不是非常重要的问题或答案。
HyperLink表将存储每个链接上的所有信息,列为:
(我认为您所说的是为链接实体分配值和乘数,而不是每次点击事件,对吧?)
ClickEvent表是您的问题/答案的核心。我给它列如下:
你对速度的担忧应该是微弱的 - 即使有很多活动,这也不是非常密集。每个事务(单击)都记录在ClickEvent表中。每次单击事件都会插入一条新记录,在插入期间,会写入ComputedEventValue。
这似乎涵盖了我所看到的主要想法。