我正处于建立一个依赖附属链接的网站的规划阶段。我很难想出一个好的设计,因为附属链接会根据不同的标准而变化:
- 产品编号
- 会员编号
- 用户位置
- 用户设备
例如:
链接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
- 使用安卓设备
基本上,如果这些因素中的任何一个发生变化,它可能会有一个特定的链接。这是不一致的。
我可能会使用 mod_rewrite 来帮助关注查询,例如:
http://mysite.com/outgoing/product-name/11111/android/us
这将用于生成查询,但我不知道我想为数据库设计做什么,因此它很灵活,并且无需手动插入与每个可能组合匹配的链接。
我最初想的是这样的一个表:
- link_id - Auto_incremented PK
- 附属ID
- 国家代码
- product_id
- 附属链接
但是要为一个 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 |
明白我为什么犹豫要这样做吗?
它看起来如此低效和复杂。必须有更好的方法来做到这一点,但我现在想不出。
为了使它更复杂,有时我会得到一个“任何国家”的链接,但不包括那些已经有链接的国家。
我会很感激任何帮助。