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

Apakah benar-benar layak untuk menormalkan cara Toxi? (3NF)

Memiliki semua tag dalam catatan yang berbeda (dinormalisasi) berarti Anda dapat mengganti nama tag dengan lebih mudah jika diperlukan dan melacak riwayat nama tag.

SO , misalnya, berganti nama menjadi SQL Server tag terkait setidaknya tiga kali (mssql -> sqlserver -> sql-server ).

Memiliki semua tag dalam satu catatan (denormalisasi) berarti Anda dapat mengindeks kolom ini dengan FULLTEXT indeks dan cari posting yang memiliki dua atau lebih tag sekaligus:

SELECT  *
FROM    posts
WHERE   MATCH(tags) AGAINST('+mma +ufc')

yang mungkin juga tetapi kurang efisien dengan desain yang dinormalisasi.

(Jangan lupa sesuaikan @ft_min_word_len untuk mengindeks tag 3 karakter atau kurang agar ini berfungsi)

Anda dapat menggabungkan kedua desain:menyimpan tabel peta dan kolom yang didenormalisasi. Namun, ini akan membutuhkan lebih banyak perawatan.

Anda juga dapat menyimpan desain yang dinormalisasi dalam database Anda dan menggunakan kueri yang Anda berikan untuk memasukkan tag ke Sphinx atau Lucene .

Dengan cara ini, Anda dapat melakukan penggalian riwayat dengan MySQL , pencarian tag teks lengkap menggunakan Sphinx , dan tidak diperlukan perawatan tambahan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan untuk memilih string yang diakhiri dengan karakter tertentu

  2. Menghubungkan Visual COBOL ke MySQL

  3. MySQL Sisipkan baris, pada duplikat:tambahkan sufiks dan masukkan kembali

  4. MySQLi gagal menyiapkan pernyataan

  5. pilih beberapa baris nilai yang berbeda dari tabel yang sama