创建新条目时修改记录

时间:2014-05-09 15:12:08

标签: php mysql sql

我目前正在为某种基于游戏/审阅者的应用程序创建数据库。每当用户提交对餐馆的评论时,它就会为他的分数增加分数。 SQL脚本的摘要如下:

CREATE TABLE user
    userid CHAR(30)
    user_name....
    userpoints largeint
    etc.

评论表在这里:

    Restaurantid largeint (auto incrementing)
    restaurantname CHAR(30)
    etc.

如何在发布评论时对应用进行编程以提供积分?

4 个答案:

答案 0 :(得分:2)

使用在reviews表中的每个插入内自动触发的触发器:

delimiter |
CREATE TRIGGER review_trigger AFTER INSERT ON `reviews`
FOR EACH ROW BEGIN
   update user
   set userpoints = userpoints + 1
   where userid = NEW.reviewer;
END
|
delimiter ;

我假设您reviews表中有一个与用户相关的列 - 我称之为reviewer

答案 1 :(得分:0)

您可以在Review表上创建Trigger,插入user,或创建Procedure来处理两个插入,然后由您的应用程序调用。

答案 2 :(得分:0)

您将要对触发器进行一些研究。触发器允许您在选择,更新,插入记录等时运行SQL语句。

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

您可以创建其中一个触发器,以便在插入审阅餐厅表时运行,并让它更新用户表以将1添加到该用户的用户点行。

答案 3 :(得分:0)

如果您希望数据库处理问题,您可以使用触发器执行此操作,或者您可以使用插入查询或更新查询在php中对其进行编程。