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

Apakah praktis untuk menormalkan tabel secara dinamis?

Itu sedikit tergantung pada penggunaan Anda. Pendekatan yang dinormalisasi (taman adalah meja) akan membuat kueri berikut lebih mudah:

  • Berapa banyak penampakan burung di setiap taman
  • Di taman mana Anda kemungkinan besar akan melihat burung XYZ
  • Mungkin ada beberapa pertanyaan seperti ini

Tapi ya, Anda mengalami beberapa masalah yang sulit. Pola "jika taman XYZ tidak ada maka masukkan ke dalam tabel taman" mengalami kondisi balapan yang harus Anda tangani.

Sekarang, bagaimana dengan beberapa argumen yang menentang normalisasi di sini... Sebagian besar basis data pelanggan mungkin menyimpan alamat jalan saya sebagai "123 Foo Street", tanpa menormalkan nama jalan secara dinamis (kita dapat memiliki tabel jalan dan meletakkan "Foo Street" di sana, lalu merujuk itu dari tabel lain. Mengapa saya mengangkat ini, baik untuk menunjukkan bahwa bahkan orang-orang yang membenci data berulang mungkin akan mengakui bahwa ada beberapa garis yang tidak perlu Anda lewati.

Contoh konyol lainnya adalah bahwa kita mungkin berbagi nama belakang. Apakah kita benar-benar membutuhkan tabel untuk nama belakang yang unik dan kemudian kunci asing dari tabel lain? Mungkin ada beberapa aplikasi di mana ini membantu tetapi untuk 99% aplikasi di luar sana, ini terlalu jauh. Ini hanya lebih banyak pekerjaan dan lebih sedikit kinerja dengan sedikit atau tanpa hasil.

Jadi saya akan mempertimbangkan bagaimana saya ingin dapat meminta data kembali dari tabel. Jujur dalam hal ini saya mungkin akan membuat tabel terpisah untuk taman. Tetapi dalam kasus lain saya memilih untuk tidak melakukannya.

Itu dua sen saya, satu sen setelah pajak.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghubungkan Satu tabel ke Banyak tabel

  2. MySQL - Bagaimana cara memilih baris di mana nilai berada dalam array?

  3. Kesalahan MySQL:Penggunaan UPDATE dan LIMIT yang salah

  4. tidak dapat menemukan simbol PreparedStatement setelah pemutakhiran JAR

  5. dpkg:paket pemrosesan kesalahan mysql-server (masalah ketergantungan)?