Database 为动态附属链接设计数据库
我在规划阶段建立一个网站,依赖于附属链接。我很难想出一个好的设计,因为附属链接根据不同的标准变化:Database 为动态附属链接设计数据库,database,database-design,Database,Database Design,我在规划阶段建立一个网站,依赖于附属链接。我很难想出一个好的设计,因为附属链接根据不同的标准变化: 产品ID 附属机构ID 用户位置 用户设备 例如: 该链接适用于以下标准: 点击产品10的链接 用户所在国家为美国、英国、加利福尼亚或非盟 他们使用的是安卓设备 为了 点击产品10的链接 用户所在国家为美国、英国、加利福尼亚或非盟 使用iOS设备 为了 点击产品10的链接 用户所在国家/地区为DE 使用Android设备 基本上,如果这些因素中的任何一个发生变化,都可能有特定的联系
- 产品ID
- 附属机构ID
- 用户位置
- 用户设备
- 点击产品10的链接
- 用户所在国家为美国、英国、加利福尼亚或非盟
- 他们使用的是安卓设备
- 点击产品10的链接
- 用户所在国家为美国、英国、加利福尼亚或非盟
- 使用iOS设备
- 点击产品10的链接
- 用户所在国家/地区为DE
- 使用Android设备
- 链接id-自动递增主键
- 附属机构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 |
明白我为什么不这么做了吗
它看起来是如此低效和复杂。一定有更好的办法,但我现在想不起来
更复杂的是,有时我会得到“任何国家”的链接,但不包括那些已经有链接的国家
非常感谢您的帮助。您需要两个不同的表:一个表存储每个分支机构的原子数据(id、产品代码、链接),另一个表存储非原子数据,即国家代码;此表只需要两列,它们一起创建唯一的主键-附属机构id+国家代码。此解决方案将防止不必要的数据重复。首先,我认为您可以将附属机构id、国家代码、设备、产品id设置为外键。