我希望得到您关于设计用于存储用户喜欢和不喜欢的表的观点,以便人们可以检查用户喜欢/不喜欢的历史记录。假设我有成千上万的产品目录。他们每个人都可以被喜欢或不喜欢。我正在考虑创建两个表likes
和dislikes
,每行包含一个用户ID,product
user_like
表
user_id product_id
Tom toyA
May toyZ
Peter toyD
Tom toyZ
Peter toyV
user_dislike
表
user_id product_id
Tom toyB
Tom toyU
May toyV
Paul toyA
Paul toyN
这是一种合适的方法吗?或者我应该在一个表user_like_dislike
中使用concat将新的内容添加到记录的末尾,例如:
user_like_dislike
user_id like dislike
Tom toyA,toyZ toyB,toyU
May toyZ toyV
Paul toyA,toyN
Peter toyD,toyV
答案 0 :(得分:4)
我只有一个表user_likes,其列如下:
user_likes (user_id, product_id, like_type)
将like_type设为1表示喜欢,将0表示为不喜欢。
在user_id和product_id上使用主键(用户不应该喜欢和不喜欢同一产品)
答案 1 :(得分:0)
假设你有user_id和product_id列的数字而不是名字,第一种方法会更好。
虽然您的行数遍布屋顶,但速度要快得多。
你可以按照产品历史的用户历史进行搜索,这在第二种方法中非常复杂(因此很慢)
您甚至可以通过添加类似user_like
user_dislike
和like TINYINT(1) UNSIGNED NOT NULL