Rumah > pangkalan data > tutorial mysql > Patutkah Saya Menggunakan Subjenis atau Jadual Tunggal dengan Lajur Diskriminator untuk Hubungan Pangkalan Data?

Patutkah Saya Menggunakan Subjenis atau Jadual Tunggal dengan Lajur Diskriminator untuk Hubungan Pangkalan Data?

Linda Hamilton
Lepaskan: 2024-12-31 01:41:12
asal
358 orang telah melayarinya

Should I Use Subtypes or a Single Table with a Discriminator Column for Database Relationships?

Reka Bentuk Subjenis untuk Perhubungan Jadual Pangkalan Data

Apabila mereka bentuk skema pangkalan data, satu pertimbangan utama ialah menentukan sama ada hendak menggunakan subjenis atau tidak. Dalam konteks pengaturcaraan berorientasikan objek, subjenis ialah kelas terbitan yang mewarisi sifat dan kaedah daripada kelas superjenis atau induk. Dalam pangkalan data, konsep ini boleh digunakan pada perhubungan jadual.

Dalam senario yang diberikan, pangkalan data mempunyai tiga jadual utama: BUKU, ARTIKEL dan NOTA. Setiap buku atau artikel boleh mempunyai berbilang nota, dan reka bentuk asal mencadangkan satu jadual NOTA dengan lajur diskriminator yang dipanggil nota_jenis untuk membezakan antara nota buku dan nota artikel. Walau bagaimanapun, pendekatan ini boleh membawa kepada cabaran integriti data dan redundansi.

Pendekatan alternatif yang dicadangkan dalam soalan ialah menggunakan lima jadual:

  • BUKU
  • ARTIKEL
  • NOTA
  • NOTA_BUKU
  • NOTA_ARTIKEL

Ini reka bentuk memisahkan nota buku dan artikel ke dalam jadual yang berbeza, menghapuskan keperluan untuk lajur diskriminator. Walaupun pendekatan ini memastikan integriti data, ia juga memperkenalkan pendua kerana jadual NOTA direplikasi untuk kedua-dua buku dan artikel.

Pertimbangkan pendekatan alternatif: menggunakan reka bentuk superjenis/subjenis dengan jadual superjenis dipanggil PENERBITAN dan jadual subjenis untuk BUKU dan ARTIKEL. Dalam senario ini, jadual PENERBITAN akan mengandungi lajur biasa untuk kedua-dua buku dan artikel, manakala jadual subjenis akan mengandungi lajur khusus untuk setiap jenis.

PENERBITAN {

  • ID (PK)

Atas ialah kandungan terperinci Patutkah Saya Menggunakan Subjenis atau Jadual Tunggal dengan Lajur Diskriminator untuk Hubungan Pangkalan Data?. 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