記事の下に、良いレビュー/悪いレビューなどのボタンが表示されるなど、いくつかのレビュー風のシステム
つまり、CSDN フォーラムの記事ページのような...
私にとって役に立った [0] ドロップレンガ [0]
個人的な理解:
クリックして AJAX/JQ 経由で PHP に送信し、MYSQL を操作し、良い/悪いレビューのフィールドを +1
ただし、一般に、この種のものは IP アドレスまたは Cookie のみに限定されます。 .. .
肯定的/否定的なレビューのデータが非常に正確で、水を含まない必要がある場合
メンバーとしてログインした後でのみコメントできるようにしたいのですが (投票は非常に悪いです)
mysql は必要ですか独立したレビュー フォームを推奨しますか?
また、メンバーが 1 回だけ投票できるようにデータを構造化するためのより良い方法はありますか? 何か良い提案があれば教えてください
ディスカッションに返信してください。 (解決策)
テーブルを作成する必要があり、それは複数ある
○○は○○の後に続く、○○は○○の友達、など一連のニーズもあるかもしれないので
とはあなたが今考えているのはSNSサイトの中核(または(基本))
参考:
CREATE TABLE `votes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `ip` varchar(250) NOT NULL, ·uid· int(11) NOT NULL, `vid` int(11) NOT NULL, `fstcreate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
CREATE TABLE `article` ( `id` int(11) NOT NULL AUTO_INCREMENT, `article_title` varchar(250) NOT NULL, `article_type` int(11) NOT NULL, `article_content` longtext NOT NULL, `article_author` varchar(50) NOT NULL, `article_click_count` int(11) NOT NULL DEFAULT '0', `status` int(11) NOT NULL DEFAULT '0', `likes` int(11) DEFAULT '0', `unlikes` int(11) DEFAULT '0', `fstcreate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `lastmodify` datetime DEFAULT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `fulltext_article_title` (`article_title`,`article_content`,`key_words`) ) ENGINE=MyISAM AUTO_INCREMENT=119 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='文章表'
MID? 再送信できますか?
見てみると、COOKIE や IP だけで制限することはできません
SQL を使用する必要があります
しかし、パフォーマンスの問題があるので、質問したいことがあります
次の 2 つのオプションのどちらが良いですか?
A. 肯定的/否定的なコメントを記事テーブルの列に追加します
肯定的なレビューごとに、独立したフォームを追加するだけでなく、記事の肯定的/否定的なレビュー列に 1 を追加します
B. 独立したフォームを作成します肯定的/否定的なレビューのアクションを記録します
肯定的/否定的なレビューのたびに、新しいレコードがコメントテーブルに追加されます
ID (自動)
uid ユーザー ID
tid 記事 ID (トピック ID)
肯定的/否定的なレビューに投票します(1/0)
記事 tid=90
1 つの違い 違いはどれくらいですか
肯定的なレビューの数: select count(*) from `comment` where `tid`='90' and `vote` = '1'
否定的なレビューの数: select count(*) from `comment` where `tid` ='90' and `vote` = '1'
迷った点:
オプション A、毎回 +1 に行く.... トピックのコンテンツはコメントのデータ容量よりも明らかに大きいので、より多くのデータを消費するように感じますか?トピックを作成し、コメント テーブル内のコメントの数が tid に関連しているかを計算する必要はありません
オプション B、良いレビューの差は使用されません コメントする場合、トピックの操作は少なくなりますが、選択する場合... count(*) を毎回計算する必要があるようですが、平均 200 件の良いレビューと悪いレビューを持つ記事が 50,000 件ある場合、コメントにはすでに 1,000 万件のデータが含まれていると考えられます。 ??? それ以上の場合はどうなるでしょうか? それとも、何百万ものデータをカウントするのは耐えられないのでしょうか?
これら 2 つの SQL ソリューションに基づくキャッシュの問題については説明しません。 、どちらの方がリソースの消費が少ないでしょうか?