Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Desain basis data relasional beberapa jenis pengguna

Kasing Anda terlihat seperti turunan dari kelas/subkelas.

Ada dua cara klasik untuk mendesain tabel SQL untuk menangani subclass. Masing-masing memiliki kelebihan dan kekurangan.

Salah satu caranya disebut "Pewarisan Tabel Tunggal". Dalam desain ini hanya ada satu meja untuk semua jenis pengguna. Jika kolom tertentu tidak berhubungan dengan baris tertentu, perpotongan dibiarkan NULL. Kolom dapat ditambahkan untuk menunjukkan tipe pengguna.

Cara lain disebut "Pewarisan Tabel Kelas". Ini sangat mirip dengan jawaban yang diberikan Nanego, dengan beberapa perubahan kecil. Ada satu tabel untuk pengguna, dengan semua data umum, dan bidang id. Ada satu tabel untuk setiap subclass, dengan data yang berkaitan dengan subclass itu. Bidang id sering diatur sebagai salinan bidang id di baris yang cocok di tabel pengguna. Dengan cara ini kunci subkelas dapat melakukan tugas ganda, bertindak sebagai kunci utama dan sebagai kunci asing yang mereferensikan tabel pengguna. Teknik terakhir ini disebut "Shared Primary Key". Ini membutuhkan sedikit pemrograman pada waktu penyisipan, tetapi itu sangat berharga. Ini memaksakan sifat hubungan satu-ke-satu, dan mempercepat penggabungan yang diperlukan.

Anda dapat melihat ketiga desain ini sebagai tag di SO atau sebagai artikel di web.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menyimpan data XML ke dalam database mysql? Saya tidak ingin kunci asing seperti orang gila

  2. mysql_fetch_row() vs mysql_fetch_assoc() vs mysql_fetch_array()

  3. Bagaimana cara menggunakan kaskade penghapusan pada mesin penyimpanan MySQL MyISAM?

  4. Menghasilkan berbagai angka di MySQL

  5. Cara yang lebih baik untuk menjalankan beberapa perintah MySQL menggunakan skrip shell