Bagaimana untuk Menyimpan Tatasusunan Pengguna dengan Cekap dalam MySQL: Alternatif yang Lebih Baik untuk Storan Langsung?

Mary-Kate Olsen
Lepaskan: 2024-11-04 19:26:02
asal
465 orang telah melayarinya

How to Efficiently Store User Arrays in MySQL: A Better Alternative to Direct Storage?

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:

  • ulasan jadual: Menyimpan ID ulasan dan kandungan.
  • jadual pengguna: Menyimpan ID pengguna dan nama pengguna.
  • comments_votes jadual: Menyimpan ID ulasan, ID pengguna dan jenis undian.

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Kelebihan Pendekatan Ini

Pendekatan alternatif memberikan beberapa kelebihan:

  • Integriti rujukan: Kekangan utama asing memastikan semua komen yang diundi dan pengguna wujud dalam jadual masing-masing.
  • Menghalang baris yatim: Struktur ternormal menghapuskan kemungkinan baris yatim, yang boleh berlaku apabila tatasusunan disimpan dalam satu medan.
  • Prestasi yang lebih pantas: Jadual perhubungan biasanya menawarkan prestasi yang lebih baik untuk operasi pertanyaan dan manipulasi data.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan