每个帖子禁用多个“喜欢”

时间:2011-02-12 13:13:25

标签: php mysql social-media-like

我正在开发一个用PHP发布Web应用程序的问题。

当您登录时,您可以点击特定问题,然后打开新页面,并且可以选择喜欢该特定问题。每个“喜欢”在表格“问题”中增加字段评级

现在我想做的是只为每个用户启用一个。怎么做的? :/

这些是我的表格。

问题:

qID int(3)           
qTitle  varchar(200)             
userID  int(2)          users -> userID (foreign key)    
qBody   text                 
rating  int(2)

USERS

userID  int(2)  (PRIMARY KEY)        
username    varchar(40)          
fname   varchar(40)          
lname   varchar(40)          
password    varchar(40)          
email   varchar(50)

2 个答案:

答案 0 :(得分:4)

您需要一个记录userIDqID的表格,在2列上具有唯一约束(通过复合主键)。

出于性能原因,您仍然可以保留rating列并在成功插入此表后(可能通过触发器)作为非规范化字段进行增量。

答案 1 :(得分:3)

使用第三张表:

LIKES

userID  int(2)
qID int(2)

当用户'喜欢'时,请在该表中添加一行。在允许“喜欢”之前,首先检查该表中没有匹配的行。