【发布时间】:2013-07-09 21:09:21
【问题描述】:
每天我都想跟踪我的数据库中某个对象获得了多少“点击”(int)。
现在对象中称为 clicks 的 int 显然无济于事,因为我无法跟踪点击的日期。
存储每日点击次数最明智的方式是什么?
【问题讨论】:
标签: database performance entity-framework database-design
每天我都想跟踪我的数据库中某个对象获得了多少“点击”(int)。
现在对象中称为 clicks 的 int 显然无济于事,因为我无法跟踪点击的日期。
存储每日点击次数最明智的方式是什么?
【问题讨论】:
标签: database performance entity-framework database-design
将VisitedDate 列保留在您的跟踪表中。
RecordID INT Identity
ItemID INT
VisitedDate DateTime
IPAddress varchar(30)
获得记录后,您可以查询并获取特定日期/月份的访问结果等...
【讨论】:
按照 Shyju 的建议创建一个表(IP 地址是可选的),是的,它会快速增长,但如果出现问题,您可以将数据汇总到每周(或每月,或每年)汇总表,其中存储总数对于那个项目,那个时间段。
最好始终将数据初始存储在此最低级别,并根据需要汇总/归档到汇总表,因为如果您最初将数据存储在汇总级别,您将永远丢失该详细信息 - 跟踪详细程度使您的所有选项保持开放。
如果您需要,可以使用一些变通方法来提高性能,没有任何变通方法可以重新创建您从未存储过的数据。
【讨论】:
我随时在点击表上插入或更新。
Clicks
(Product_id | Vendor_id | User_id)[unique] | Clicks | Created_at
如果 (Product_id | Vendor_id | User_id) 组合不存在,则插入。更新(+1 点击),如果该组合已经存在。
我不会担心现在的表现,在早期阶段。
如果你还在担心,
Use a javascript request and write the (Product_id | Vendor_id | User_id)[unique] | Clicks | Created_at into a textfile, onclick.
在 EOD 中,将文件中的信息加载到 clicks 表中。
【讨论】: