Rumah > pangkalan data > tutorial mysql > Bolehkah Senarai Disimpan dengan Cekap dalam Lajur Pangkalan Data Hubungan?

Bolehkah Senarai Disimpan dengan Cekap dalam Lajur Pangkalan Data Hubungan?

Mary-Kate Olsen
Lepaskan: 2024-12-26 04:50:09
asal
558 orang telah melayarinya

Can Lists Be Stored Efficiently in a Relational Database Column?

Menyimpan Senarai dalam Lajur Pangkalan Data: Bolehkah Ia Dilakukan?

Apabila berhadapan dengan tugas menyimpan objek kompleks seperti senarai dalam pangkalan data hubungan, persoalan timbul: bolehkah ini dicapai sambil mematuhi prinsip normalisasi pangkalan data?

Dalam contohnya, objek yang diminati, FOO, mengandungi senarai buah-buahan. Keperluan adalah untuk mengekalkan senarai ini dalam lajur pangkalan data. Walau bagaimanapun, skema pangkalan data relasi tradisional tidak menggalakkan penyimpanan data tidak berstruktur seperti senarai dalam satu lajur.

Pendekatan Pangkalan Data Relasional

Penyelesaian terletak pada reka bentuk tidak normal yang dikenali sebagai simpang meja. Dalam pendekatan ini, kami mencipta jadual berasingan, FOOFruits, yang menyimpan hubungan antara objek FOO dan buah-buahan yang terkandung di dalamnya. Setiap baris dalam jadual ini mewakili pautan antara objek FOO tertentu dan buah.

Untuk menentukan struktur jadual:

CREATE TABLE FOO (
  id int primary key not null,
  int1 int,
  int2 int,
  int3 int
);

CREATE TABLE Fruits (
  id int primary key not null,
  name varchar(30)
);

CREATE TABLE FOOFruits (
  FruitID int references Fruits (ID),
  FooID int references FOO(id),
  constraint pk_FooFruits primary key (FruitID, FooID)
);
Salin selepas log masuk

Dengan menggunakan pendekatan ini, kami memastikan integriti data dan mengelakkan ketidakkonsistenan sambil mengekalkan integriti rujukan jadual FOO dan Fruits.

Sebagai contoh, untuk menambah buah "Epal" pada Objek FOO dengan ID=5:

INSERT FOOFruits(FooID, FruitID)
SELECT 5, ID FROM Fruits WHERE name = 'Apple';
Salin selepas log masuk

Kaedah ini membenarkan pertanyaan yang cekap dan mendapatkan semula senarai buah yang dikaitkan dengan setiap objek FOO.

Atas ialah kandungan terperinci Bolehkah Senarai Disimpan dengan Cekap dalam Lajur Pangkalan Data Hubungan?. 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