1

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

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

现在我想做的是每个用户只启用一个。它是如何完成的?:/

这些是我的桌子。

问题:

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

用户

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

2 回答 2

4

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

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

于 2011-02-12T13:16:42.517 回答
3

使用第三个表:

喜欢

userID  int(2)
qID int(2)

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

于 2011-02-12T13:17:37.373 回答