Cara Menyimpan Tatasusunan Pengguna dalam MySQL dengan Cekap: Alternatif yang Lebih Baik
Pengenalan
Kepada menghalang undian berbilang pengguna dalam sistem penilaian ulasan, adalah penting untuk menyimpan tatasusunan ID pengguna yang telah mengundi. Walau bagaimanapun, menyimpan tatasusunan secara langsung dalam medan MySQL boleh menjadi masalah dan boleh membawa kepada isu konsistensi data. Artikel ini meneroka alternatif yang lebih cekap yang memastikan integriti rujukan dan menghalang baris yatim.
Mencipta Jadual Hubungan Ternormal
Daripada menyimpan tatasusunan dalam satu medan, cipta yang berikut jadual hubungan yang dinormalkan:
Menguatkuasakan Integriti Rujukan
Kepada pastikan data konsisten, tambahkan kekangan kunci asing pada jadual comments_votes:
<code class="sql">CREATE TABLE comments_votes ( comment_id INT, user_id INT, vote_type INT, PRIMARY KEY (comment_id, user_id), FOREIGN KEY (comment_id) REFERENCES comments (comment_id), FOREIGN KEY (user_id) REFERENCES users (user_id) ) ENGINE=INNODB;</code>
Memasukkan Data Sampel
Isi jadual dengan data sampel:
<code class="sql">INSERT INTO comments VALUES (1, 'first comment'); INSERT INTO users VALUES (1, 'user_a'); INSERT INTO comments_votes VALUES (1, 1, 1);</code>
Menghalang Undi Pendua
Cuba untuk memasukkan undian pendua akan mengakibatkan ralat disebabkan oleh indeks unik:
<code class="sql">INSERT INTO comments_votes VALUES (1, 1, 1); ERROR 1062 (23000): Duplicate entry '1-1' for key 'PRIMARY'</code>
Kelebihan Pendekatan Ini
Pendekatan alternatif memberikan beberapa kelebihan:
Kesimpulan
Daripada menyimpan tatasusunan data dalam satu medan MySQL, menggunakan jadual hubungan ternormal dengan kunci asing menyediakan cara pengendalian tatasusunan yang lebih dipercayai dan cekap. Pendekatan ini memastikan integriti rujukan, menghalang ketidakkonsistenan data dan meningkatkan prestasi, menjadikannya penyelesaian ideal untuk senario di mana tatasusunan perlu disimpan dan diuruskan dalam pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Tatasusunan Pengguna dengan Cekap dalam MySQL: Alternatif yang Lebih Baik untuk Storan Langsung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!