0

我有一个特别的问题。我正在建模一个在线广告数据库系统,但我不知道在数据库中存储给定广告的特定日期的点击次数的最佳解决方案是什么。


简短的系统解释(要求):

系统在不同的网站 (ad_page) 上展示广告。每个网站 (ad_page) 可以有许多广告位置 (ad_spot)。每个广告必须在一段时间内仅在一个位置上处于活动状态。广告不断变化的位置和页面。

对于每个广告,系统必须知道:

  • 该广告处于活动状态的每个页面和时间
  • 每天的点击次数(每页可选)

对于每个网站(ad_page)系统必须知道:

  • 整个网站上的广告点击次数(不是特定的 ad_spot)

我拥有的当前(简化)模型:LINK

我知道这可能不是最好的解决方案,但我想不出更好的办法。

4

1 回答 1

1

根据您的评论:

1)归一化。您不应该在多个地方存储相同的数据[即:点击次数],因为它会使事情复杂化并导致这个确切的问题。创建一个单独的表来跟踪它们一次,并且只跟踪一次。

TABLE clicks
  ad_id INT PK
  date DATE PK
  clicks INT

2)您不一定需要预先检查日期是否存在。

INSERT INTO clicks (ad_id, date, numclicks) 
  VALUES (TODAY(), 123, 1)
  ON DUPLICATE KEY UPDATE clicks=clicks+1
于 2013-01-04T16:32:07.827 回答