Rumah > Soal Jawab > teks badan
P粉9482589582023-08-28 11:49:53
"Salah satu sebabnya ialah malas".
Ini adalah panggilan bangun. Satu-satunya sebab anda perlu melakukan sesuatu seperti ini adalah kerana anda tahu cara melakukannya "dengan cara yang betul", tetapi anda membuat kesimpulan bahawa ada sebab kukuh untuk tidak melakukannya.
Seperti yang dinyatakan: Jika data yang anda pilih untuk menyimpan dengan cara ini ialah data yang anda tidak perlu bertanya, maka mungkin terdapat kes untuk menyimpannya mengikut cara yang anda pilih.
(Sesetengah pengguna akan mengambil isu dengan kenyataan saya dalam perenggan sebelumnya, dengan mengatakan "anda tidak pernah tahu keperluan apa yang boleh ditambah pada masa hadapan". Pengguna ini sama ada salah maklumat atau menyatakan kepercayaan agama. Kadangkala, adalah berfaedah untuk bekerja keras untuk keperluan di hadapan anda )
P粉5459565972023-08-28 09:02:45
Selain melanggar Borang Biasa Pertama, terdapat banyak masalah lain yang lebih praktikal dengan lajur nilai kumpulan berulang yang disimpan dalam senarai tunggal yang dipisahkan koma:
idlist REGEXP '[[:<:]]2[[:>:]]'
或在 MySQL 8.0 中:idlist REGEXP '\b2\b'
李>
Untuk menyelesaikan masalah ini, anda perlu menulis banyak kod aplikasi dan mencipta semula ciri yang lebih cekap yang telah disediakan oleh RDBMS.
Senarai yang dipisahkan koma adalah salah dan saya menjadikannya bab pertama dalam buku saya: SQL Anti-Corak, Jilid 1: Mengelakkan Perangkap Pengaturcaraan Pangkalan Data.
Ada kalanya anda perlu menyahnormalkan, tetapi seperti yang dinyatakan oleh @OMG Ponies, ini adalah pengecualian. Sebarang "pengoptimuman" bukan perkaitan akan memberi manfaat kepada satu jenis pertanyaan dengan mengorbankan penggunaan data yang lain, jadi pastikan anda mengetahui pertanyaan yang memerlukan pengendalian khas supaya pertanyaan tersebut layak untuk dinyahnormalisasi.