0

私には特定の問題があります。私はオンライン広告データベース システムをモデリングしていますが、特定の広告の特定の日付のクリック数をデータベースに格納するための最適なソリューションが何であるかがわかりません。


簡単なシステム説明 (要件):

システムが別の Web サイト (ad_page) に広告を表示しています。各 Web サイト (ad_page) には、広告 (ad_spot) 用の多くの場所を含めることができます。各広告は、一定期間、1 つのスポットでのみアクティブにする必要があります。広告は常にスポットやページを変えています。

各広告について、システムは次のことを認識している必要があります。

  • その広告がアクティブだったすべてのページと時間
  • 毎日のクリック数 (オプションで各ページ)

各 Web サイト (ad_page) について、システムは次のことを認識している必要があります。

  • ウェブサイト全体での広告のクリック数 (特定の ad_spot ではありません)

私が持っている現在の(簡略化された)モデル:LINK

これがおそらく最善の解決策ではないことはわかっていますが、より良い解決策を見つけることはできません。

4

1 に答える 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 に答える