反馈系统只允许每个用户1个


Feedback system only allow 1 per user

我在一个网站上实现了一个反馈系统,但是一个用户应该只允许给另一个用户一次反馈。

我能想到的唯一方法是创建另一个数据库,显示谁离开了谁跟踪id的反馈,但我确信有一个更简单的方法来实现相同的结果,我只是没有看到它?或者我最初计划的将信息放入另一个数据库的方法是最好的解决方案吗?

我现在的代码是:

<?php
    if(isset($_POST['good'])) {
        $thumbsUp = mysql_query("UPDATE users SET good_feedback = '". $newGood1 ."' WHERE `username` = '". $profileUser ."'");
    if($thumbsUp) {
            echo 'You have left feedback';
        }
    }
    if(isset($_POST['bad'])) {
        $thumbsUp = mysql_query("UPDATE users SET bad_feedback = '". $newGood2 ."' WHERE `username` = '". $profileUser ."'");
    if($thumbsDown) {
        echo 'You have left bad feedback';
        }
    }
    if (logged_in() == true && $user_data['username'] != $profile_data['username']) {
        echo '<p style="font-size: 17px; margin-left: 22%;">Leave Feedback: </p>';
        echo '<form method="post" style="margin-left: 8%;">
            <button class="btn-u" name="good">Good Feedback</button>
            <button class="btn-u" name="bad">Bad Feedback</button>
            </form>';
    } else {
        echo 'you cannot leave feedback for yourself!';
    }
?>

提前感谢您的回答。

请注意:我知道以上代码是开放的SQL注入的

如果您想设置一个环境,约束"A"只能向"B"提供一次反馈,那么您可以使用唯一索引来实现。下面是你可以做的一个非常简单的形式:

create table feedback (
    FromUser int,
    ToUser int,
    Message varchar(255)
);
create unique index idx_feedback_from_to on feedback(fromuser, touser);