0

私はアフィリエイトリンクに依存するサイトを構築する計画段階にあります。アフィリエイトリンクはさまざまな基準に基づいて変更されるため、良いデザインを思い付くのに苦労しています。

  • 製品番号
  • アフィリエイトID
  • ユーザーの場所
  • ユーザーのデバイス

例えば:

リンクhttp://site.com/affiliate/11111/id/10000は、次の基準に対応しています。

  • 製品10のリンクをクリックします
  • ユーザーの国は、米国、英国、カリフォルニア、またはオーストラリアです。
  • 彼らはAndroidデバイスを使用しています

http://site.com/affiliate/11111/id/10001の場合

  • 製品10のリンクをクリックします
  • ユーザーの国は、米国、英国、カリフォルニア、またはオーストラリアです。
  • iOSデバイスの使用

http://site.com/affiliate/11111/id/10002の場合

  • 製品10のリンクをクリックします
  • ユーザーの国はDEです
  • Androidデバイスを使用する

基本的に、これらの要因のいずれかが変更された場合、それに対する特定のリンクが含まれる可能性があります。一貫性がありません。

私はおそらくmod_rewriteを使用して、次のようなクエリに焦点を合わせるのに役立てます。

http://mysite.com/outgoing/product-name/11111/android/us

これはクエリの生成に使用されますが、データベース設計で何をしたいのかわからないため、柔軟性があり、考えられるすべての組み合わせに一致するリンクを手動で挿入する必要がありません。

私はもともと次のような単一のテーブルを考えていました:

  • link_id-Auto_incremented PK
  • affiliate_id
  • country_code
  • 製品番号
  • affiliate_link

ただし、上記の最初の例を1つのproduct_idに対して実行するには、次のようにします。

| link_id | affiliate_id | country_code |   device     | product_id |            affiliate_link                 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    1    |    11111     |      US      |   android    |     10     |  http://site.com/affiliate/11111/id/10000 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    2    |    11111     |      UK      |   android    |     10     |  http://site.com/affiliate/11111/id/10000 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    3    |    11111     |      CA      |   android    |     10     |  http://site.com/affiliate/11111/id/10000 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    4    |    11111     |      AU      |   android    |     10     |  http://site.com/affiliate/11111/id/10000 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    5    |    11111     |      US      |     iOS      |     10     |  http://site.com/affiliate/11111/id/10001 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    6    |    11111     |      UK      |     iOS      |     10     |  http://site.com/affiliate/11111/id/10001 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    7    |    11111     |      CA      |     iOS      |     10     |  http://site.com/affiliate/11111/id/10001 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    8    |    11111     |      AU      |     iOS      |     10     |  http://site.com/affiliate/11111/id/10001 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    9    |    11111     |      DE      |   android    |     10     |  http://site.com/affiliate/11111/id/10002 |
+---------+--------------+--------------+--------------+--------------------------------------------------------+
|    10   |    11111     |      DE      |     iOS      |     10     |  http://site.com/affiliate/11111/id/10003 |

なぜ私がこのようにするのをためらっているのか分かりますか?

それはとても非効率的で複雑に思えます。これを行うにはもっと良い方法が必要ですが、私は今それを考えることができません。

さらに複雑にするために、「任意の国」へのリンクを取得することがありますが、すでにリンクがある国は除きます。

助けていただければ幸いです。

4

1 に答える 1

0

2つの異なるテーブルが必要です。1つのテーブルは各アフィリエイトに関するアトミックデータ(ID、製品コード、リンク)を格納し、もう1つは非アトミックデータの国コードを格納します。このテーブルに必要な列は2つだけで、これらが一緒になって一意の主キー(アフィリエイトID +国コード)を作成します。このソリューションは、データの不必要な繰り返しを防ぎます。

于 2012-10-18T07:22:52.590 に答える