我正处于构建依赖联盟链接的网站的规划阶段。我很难想出一个好的设计,因为会员链接根据不同的标准而变化:
例如:
链接http://site.com/affiliate/11111/id/10000符合以下条件:
http://site.com/affiliate/11111/id/10001
http://site.com/affiliate/11111/id/10002
基本上,如果这些因素中的任何一个发生变化,它可能会有一个特定的链接。这不一致。
我可能会使用mod_rewrite来帮助专注于查询:
http://mysite.com/outgoing/product-name/11111/android/us
这将用于生成查询,但我不知道我想对数据库设计做什么,因此它非常灵活,可以防止必须手动插入符合所有可能组合的链接。
我最初想的是这样一张桌子:
但要为上述第一个例子只做一个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 |
看看为什么我这样做犹豫不决?
它似乎效率低下且复杂。必须有一个更好的方法来做到这一点,但我现在无法想到它。
为了使其更复杂,有时我会获得“任何国家/地区”的链接,但不包括已有链接的链接。
我很感激任何帮助。
答案 0 :(得分:0)
您需要两个不同的表:一个表存储关于每个会员的原子数据(id,产品代码,链接),一个表存储非原子数据,国家代码;此表只需要两列,它们一起创建唯一的主键 - 联盟ID +国家/地区代码。该解决方案可以防止不必要的重复数据。