我该如何设计这个数据库?

时间:2013-07-11 14:25:13

标签: database performance entity-framework database-design

我每天都想跟踪数据库中某个对象获得的“点击次数”(int)。

现在,名为click的对象中的int显然无济于事,因为我无法跟踪点击的日期。

最聪明的方法是存储每日点击次数?

3 个答案:

答案 0 :(得分:1)

VisitedDate列保留在跟踪表中。

RecordID INT Identity
ItemID INT
VisitedDate DateTime
IPAddress varchar(30)

获得记录后,您可以查询并获取特定日期/月份的访问结果等...

答案 1 :(得分:1)

按照Shyju的建议创建一个表(ip地址是可选的),是的它会快速增长但是如果它成为一个问题你可以将数据汇总到每周(或每月或每年)汇总表,它存储总数该项目的那段时间。

最好始终将数据存储在最低级别,并根据需要将数据汇总/存档到汇总表,因为如果您最初将数据存储在汇总级别,那么您将永远丢失该详细信息 - 跟踪到详细程度可以保持所有选项的开放。

如果需要,可以使用性能变通方法,没有可以重新创建从未存储的数据的变通方法。

答案 2 :(得分:0)

我在点击表上随时插入或更新。

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中,将文件中的信息加载到点击表中。