您好我有一个问题,一个方法可以阻止人们可以投票或投票评论的网站进行第二次投票。像Stackoverflow! :)
问题是我如何能够跟踪登录用户是否已经对评论进行了投票。让我们假设这是一个在线电子商务商店,对产品进行评论。这就是我的想法:
当一个人点击向上投票按钮时,系统将检查当前用户的user_id是否与up_voters中的任何人匹配。爆炸功能会将1101.1102.1103变成一个数组,而in_array()将用于检查用户是否已经投票。
还有更好的方法吗?
答案 0 :(得分:5)
那张桌子会给你带来噩梦。想想有1K up_voters的热门产品,你的领域将是10K * 4个字符长!不仅如此,它还会妨碍您制作报告和研究数据的能力等。
我不太了解您的需求,但从我在表中看到的内容,我建议如下。
review
user_id, product_id, type_of_vote, title, description, time_created
使用上表并使用user_id,product_id作为密钥
OR
review
review_id, product_id, title, description, time_created
vote
review_id, user_id, type_of_vote
为此设计表有多种方法。如果是Operational Data Store(ODS),那么您可能需要normalize您的设计。如果它是仓库,那么您可以考虑我上面提到的第一个表。