Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Harus Menyimpan Senarai Data Berkaitan dalam Pangkalan Data Hubungan?

Bagaimanakah Saya Harus Menyimpan Senarai Data Berkaitan dalam Pangkalan Data Hubungan?

Linda Hamilton
Linda Hamiltonasal
2024-12-27 01:12:10323semak imbas

How Should I Store Lists of Related Data in a Relational Database?

Menyimpan Senarai dalam Lajur Pangkalan Data: Panduan Reka Bentuk Pangkalan Data Hubungan Normal

Menyimpan data hierarki, seperti senarai, dalam lajur pangkalan data boleh menjadi satu cabaran. Mari kita pertimbangkan senario di mana anda ingin menyimpan objek FOO yang mengandungi senarai buah-buahan dan tempat buah-buahan disimpan dalam jadual yang berasingan.

Dalam pangkalan data hubungan normal, tidak disyorkan untuk menyimpan senarai secara langsung dalam lajur. Ini mewujudkan isu integriti data dan menyukarkan untuk mengekalkan dan menanyakan data dengan berkesan. Sebaliknya, anda harus mencipta jadual simpang yang mengaitkan objek FOO dengan buah-buahan.

Merancang Skema Pangkalan Data

Buat jadual berikut:

  • FOO: Lajur integer untuk objek FOO atribut.
  • Buah-buahan: Lajur integer untuk ID buah dan lajur aksara untuk nama buah.
  • FOOFruits: Jadual simpang ini mengaitkan objek FOO dengan buah-buahan. Ia mengandungi dua lajur: FruitID dan FooID.

Contoh Skema:

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)
);

Mengisi Data

Untuk menambah buah pada senarai objek FOO, masukkan baris ke dalam FOOFruits jadual:

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

Kelebihan Reka Bentuk Ternormal

  • Memelihara integriti data dengan memastikan buah dalam senarai adalah sah.
  • Memudahkan untuk membuat pertanyaan dan mengurus data dengan membahagikannya kepada yang lebih kecil, berkaitan jadual.
  • Memberi fleksibiliti untuk perubahan masa hadapan dalam struktur data.

Atas ialah kandungan terperinci Bagaimanakah Saya Harus Menyimpan Senarai Data Berkaitan dalam Pangkalan Data Hubungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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