【发布时间】:2010-01-10 16:58:51
【问题描述】:
我有一个问题,我有反对意见,希望能提供更多意见。
我的网站有用户,每个用户都有一个 user_id。这些用户可以查看产品,我需要跟踪查看特定产品的用户的独特实例。要在单独的视图表中记录视图,我目前有两种选择:
选项 1:
view_id (INT,PK) | user_id (INT,FK) | product_id (INT,FK) |查看日期
... 并在两个中间列上创建唯一约束,以便使用 ON DUPLICATE KEY 轻松更新。如果相同的视图已经存在,我只需更新 view_date。如果没有,我写一个新行。
选项 2:
user_product (VARCHAR20,PK) |查看日期
... 将两个id合并成一个VARCHAR,中间有一个分隔符,使用主键列方便更新ON DUPLICATE KEY,方法同上。
该结构最多可容纳约百万独特的观点。关于哪个选项可能更好或更差的任何想法,为什么?非常感谢。
编辑: 谢谢大家的回答,好像有共识了。倾向于同一侧,但只是需要安慰。
【问题讨论】:
标签: mysql unique-constraint primary-key