Menyimpan Tatasusunan dalam MySQL: Pendekatan Alternatif
Untuk menghalang pengundian berbilang dalam sistem penilaian ulasan, anda ingin menyimpan tatasusunan pengguna ID dalam medan MySQL. Walaupun ini tidak disokong secara langsung oleh MySQL, pertimbangkan pendekatan alternatif berikut:
Skema Pangkalan Data
Buat tiga jadual:
CREATE TABLE comments ( comment_id int, body varchar(100), PRIMARY KEY (comment_id) ); CREATE TABLE users ( user_id int, username varchar(20), PRIMARY KEY (user_id) ); CREATE TABLE comments_votes ( comment_id int, user_id int, vote_type int, PRIMARY KEY (comment_id, user_id) );
Contoh Data
INSERT INTO comments VALUES (1, 'first comment'); INSERT INTO comments VALUES (2, 'second comment'); INSERT INTO users VALUES (1, 'user_a'); INSERT INTO users VALUES (2, 'user_b'); INSERT INTO comments_votes VALUES (1, 1, 1); INSERT INTO comments_votes VALUES (2, 1, 1);
Menyemak Kelayakan Pengguna
Untuk menentukan sama ada pengguna telah mengundi pada ulasan tertentu, gunakan pertanyaan mudah:
SELECT COUNT(*) FROM comments_votes WHERE comment_id = <comment id> AND user_id = <user id>;
Pendekatan ini menghalang undian berbilang kerana kekangan utama utama pada jadual comments_votes memastikan keunikan.
Menghalang Berbilang Undian
Jika pengguna telah mengundi, lumpuhkan ikon undian dalam logik sistem berdasarkan hasil pertanyaan.
Kelebihan Pendekatan Ini
Atas ialah kandungan terperinci Bagaimana untuk Menghalang Berbilang Undian dalam Sistem Penarafan Komen Tanpa Menyimpan Tatasusunan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!