Cara Menyimpan Tatasusunan dengan Berkesan dalam MySQL
Ia selalunya perlu untuk menyimpan tatasusunan dalam pangkalan data atas pelbagai sebab. Walau bagaimanapun, tidak seperti bahasa pengaturcaraan lain yang mungkin mempunyai jenis data terbina dalam untuk tatasusunan, MySQL tidak mempunyai jenis data khusus untuk menyimpan tatasusunan. Ini menimbulkan persoalan tentang cara terbaik pendekatan menyimpan tatasusunan dalam MySQL.
Bolehkah Tatasusunan Disimpan dalam Medan Tunggal?
Jawapan mudahnya ialah tidak, tidak ada cara yang disyorkan untuk menyimpan tatasusunan dalam satu medan MySQL. Menyimpan tatasusunan dalam satu medan membawa kepada isu integriti data dan menjadikannya mencabar untuk membuat pertanyaan dan mendapatkan semula data dengan cekap.
Pendekatan Alternatif: Pemodelan Data Perhubungan
Pendekatan yang disyorkan adalah untuk memeriksa data hubungan anda dan membuat perubahan yang sesuai pada skema anda. Ini melibatkan penciptaan jadual dan lajur yang berasingan untuk mewakili aspek berbeza data dalam tatasusunan. Dengan menormalkan data, anda mengekalkan integriti data dan memudahkan pertanyaan dan mendapatkan semula yang cekap.
Menggunakan Fungsi Serialisasi
Jika anda benar-benar mesti menyimpan tatasusunan dalam satu medan, anda boleh menggunakan fungsi bersiri seperti serialize() dan unserialize() atau json_encode() dan json_decode(). Fungsi ini menukar tatasusunan kepada rentetan yang boleh disimpan dalam satu medan. Walau bagaimanapun, pendekatan ini mempunyai hadnya.
Anda tidak boleh melakukan pertanyaan tentang kandungan sebenar data bersiri. Ia juga meningkatkan saiz data yang disimpan, bergantung pada kerumitan tatasusunan.
Contoh: Pemodelan Data Hubungan
Pertimbangkan tatasusunan PHP berikut:
$a = array( 1 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), 2 => array( 'a' => 1, 'b' => 2, 'c' => 3 ), );
Untuk menyimpan tatasusunan ini dalam MySQL menggunakan pemodelan data hubungan, buat jadual bernama 'ujian' dengan yang berikut struktur:
CREATE TABLE test ( id INTEGER UNSIGNED NOT NULL, a INTEGER UNSIGNED NOT NULL, b INTEGER UNSIGNED NOT NULL, c INTEGER UNSIGNED NOT NULL, PRIMARY KEY (id) );
Masukkan data daripada tatasusunan ke dalam jadual menggunakan pertanyaan seperti:
$query = "INSERT INTO test (id, a, b, c) VALUES ($k, $v['a'], $v['b'], $v['c'])";
Untuk mendapatkan semula data daripada jadual, lakukan pertanyaan seperti:
$query = 'SELECT * FROM test'; $ret[array_shift($o)] = $o;
Pendekatan ini membolehkan anda membuat pertanyaan dan mendapatkan maklumat khusus daripada tatasusunan dengan cekap sambil mengekalkan integriti data.
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Tatasusunan secara Berkesan dalam Pangkalan Data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!