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

Cara terbaik untuk menyimpan nama kategori dari php di tabel mysql

Tergantung,

Berapa banyak kategori yang akan Anda miliki, seberapa sering Anda perlu memperbaruinya?

Saya telah mengambil pendekatan sebelumnya di mana saya menambahkan Enum, tetapi juga menulis metode statis di kelas dan menyimpan nama yang valid di sana

class Item{


    public static function get_categories()
    {

        // only works in php >=5.4 otherwise use return array('Category1'...);
        return [
          'Category1' => 'Category1',
          'Category2' => 'Category2',
          'Category3' => 'Category3'
        ];
    }

}

Melakukan hal di atas, Anda dapat dengan mudah mendapatkan akses ke array dengan Item::get_categories(), yang harus sesuai dengan nilai dalam bidang ENUM di database. Jika Anda perlu menambahkan lebih banyak kategori, tambahkan ke database dan kemudian ke fungsi ini. Anda dapat menggunakan ini untuk memvalidasi pilihan pengguna dan menghasilkan opsi javascript.

Namun!!!!

Anda menyebutkan penyemaian yang mengisi tabel Anda, ini tidak akan dapat dengan mudah memperbarui ENUM Anda untuk Anda.

Saya akan menggunakan ENUM, karena

1). Sangat mudah untuk setup2). Ini sedikit lebih mudah daripada menggabungkan dua tabel (tetapi GABUNG adalah kartu as ketika Anda mempelajarinya)3). Jika Anda menggunakan tabel sekunder, Anda (seperti yang Anda tunjukkan) harus mencari nilai dari tabel itu terlebih dahulu, lalu menyisipkan, atau jika kategori digunakan dalam dropdown, gunakan id kategori dan namanya untuk mengisi dropdown (saya akan melakukannya dengan cara ini)

Pikiran terakhir

Kinerja kedua cara (tabel pencarian, dan ENUM) Anda akan melihat perbedaannya bahkan kecuali situs Anda sangat sangat sibuk. Anda masih harus memperbarui tabel kategori dengan setiap versi dua arah, tetapi akan sedikit lebih mudah untuk MENGGUNAKAN pernyataan INSERT daripada ALTER TABLE

Cara mana pun yang Anda pilih, jika Anda tidak menyukainya, akan sangat mudah untuk memperbarui kode Anda.

Semoga membantu, dan selamat mencoba

Ingat Keep It Simple Stupid K.I.S.S




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL JOIN untuk mengganti ID dengan nilai dari tabel lain

  2. Kinerja MySQL:Mengonversi MySQL ke MariaDB

  3. perintah mysql untuk menampilkan variabel konfigurasi saat ini

  4. Mengapa kita harus menutup database MySQL setelah perintah query?

  5. menampilkan data dari database ke dropdown CodeIgniter