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

Jenis kolom apa yang harus digunakan untuk menyimpan data serial dalam db mysql?

Untuk menjawab:teks tampaknya sudah tidak digunakan lagi di banyak DBMS, jadi lebih baik gunakan gumpalan atau varchar dengan batas tinggi (dan dengan gumpalan Anda tidak akan mendapatkan masalah penyandian apa pun, yang merupakan masalah besar dengan varchar dan teks) .

Juga seperti yang ditunjukkan dalam utas ini di forum MySQL , hard drive lebih murah daripada perangkat lunak, jadi sebaiknya Anda mendesain perangkat lunak terlebih dahulu dan membuatnya berfungsi, dan baru kemudian jika ruang menjadi masalah, Anda mungkin ingin mengoptimalkan aspek tersebut. Jadi, jangan mencoba mengoptimalkan ukuran kolom Anda terlalu dini, lebih baik atur ukurannya lebih besar terlebih dahulu (ditambah ini akan menghindari masalah keamanan).

Tentang berbagai komentar:Terlalu banyak fanatisme SQL di sini. Terlepas dari kenyataan bahwa saya sangat menyukai SQL dan model relasional, mereka juga memiliki kekurangannya.

Menyimpan data serial ke dalam database apa adanya (seperti menyimpan data berformat JSON atau XML) memiliki beberapa keuntungan:

  • Anda dapat memiliki format yang lebih fleksibel untuk data Anda:menambah dan menghapus bidang dengan cepat, mengubah spesifikasi bidang dengan cepat, dll...
  • Ketidaksesuaian impedansi yang lebih kecil dengan model objek:Anda menyimpan dan mengambil data seperti yang ada di program Anda, dibandingkan dengan mengambil data dan kemudian harus memproses dan mengonversinya antara struktur objek program dan struktur database relasional Anda .

Dan masih banyak lagi keuntungan lainnya, jadi tolong jangan fanboyisme:database relasional adalah alat yang hebat, tapi jangan membuang alat lain yang bisa kita dapatkan. Semakin banyak alat, semakin baik.

Adapun contoh konkret penggunaan, saya cenderung menambahkan bidang JSON di database saya untuk menyimpan parameter tambahan dari catatan di mana kolom (properti) dari data JSON tidak akan pernah DIPILIH secara individual, tetapi hanya digunakan ketika catatan yang tepat sudah dipilih. Dalam hal ini, saya masih dapat membedakan catatan saya dengan kolom relasional, dan ketika catatan yang tepat dipilih, saya hanya dapat menggunakan parameter tambahan untuk tujuan apa pun yang saya inginkan.

Jadi saran saya untuk mempertahankan yang terbaik dari kedua dunia (kecepatan, serializability, dan fleksibilitas struktural), cukup gunakan beberapa kolom relasional standar untuk berfungsi sebagai kunci unik untuk membedakan antara baris Anda, dan kemudian gunakan kolom blob/varchar tempat data serial Anda akan dimasukkan. Biasanya, hanya dua/tiga kolom yang diperlukan untuk kunci unik, jadi ini tidak akan menjadi beban tambahan.

Selain itu, Anda mungkin tertarik dengan PostgreSQL yang sekarang memiliki tipe data JSON, dan proyek PostSQL untuk memproses bidang JSON secara langsung seperti kolom relasional.



  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 mengelompokkan baris mysql dengan nilai kolom yang sama menjadi satu baris?

  2. AJAX memperbarui database MYSQL menggunakan fungsi yang dipanggil dari HTML yang dihasilkan dari PHP

  3. Membuat formulir pencarian di PHP untuk mencari database?

  4. Hitung berapa kali nilai muncul di kolom tertentu di MySQL

  5. Dapatkan id yang dimasukkan terbaru di pemicu?