我很有興趣從頭開始創建這樣的功能來學習,我很難理解並能夠規劃這樣的結構。大多數程序員從我見過的 檢查是否有人已經評論過評論或發表了他們的IP地址,我不喜歡這個特殊原因,因爲每個用戶都必須登錄投票,所以爲什麼不檢查用戶iD 而不是iP。我也傾向於選擇表現而不是表情,所以有人可以幫助我理解如何開始實現這一目標。我已閱讀並搜索了SO(StackOverflow)上的許多帖子 ,但它們對我來說並不太全面。我也在某處讀了一個唯一的KEY約束只允許一個投票,這是否正確?豎起大拇指/拇指向下投票系統
有關表結構的一些建議,也許如何設計將不勝感激。
我很困惑這樣的結構,下面的表是我到目前爲止。
Posts:
post_iD | message | uid_fk(user id) | voteUp | voteDown
PostsRateSystem:
rate_iD | rate_user_iD(uid_fk from posts table) |
我是否還需要第二張表來跟蹤誰的評分。
if(isset($_POST['plus']) && isset($_POST['minus'])){
$plus = $_POST['plus'];
$minus = $_POST['minus'];
$row = insertRate($post_iD, $plus, $minus);
}
<form method="post" action="">
<a href="javascript:;" name="plus" id="<?php echo $row['post_iD'];?>">Thumbs Up</a>
<a href="javascript:;" name="minus" id="<?php echo $row['post_iD'];?>">Thumbs Down</a>
function insertRate($post_iD, $plus, $minus)
{
if($plus)
{
$sth = $this->db->prepare("UPDATE posts SET voteUp = 1 WHERE post_iD = :postiD");
$sth->execute(array('postiD' => $post_iD));
}
if($minus)
{
$sth = $this->db->prepare("UPDATE posts SET voteDown = 1 WHERE post_iD = :postiD");
$sth->execute(array('postiD' => $post_iD));
}
}
是你需要跟蹤對誰額定如果要防止重複收視 – DevZer0
我不能做到這一點通過將帖子表格內的另一列只是比較由用戶iD? – iBrazilian
只有1人可以做評價? – DevZer0