「その理由の一つは怠惰です?!?
これは警鐘です。このようなことをすべき唯一の理由は、それを「正しい方法」で行う方法を知っている場合ですが、それを行わない明確な理由があると結(jié)論付けている場合です。
そうは言っても、この方法で保存することを選択したデータが、クエリを?qū)g行する必要がないデータである場合は、選択した方法で保存することもできるかもしれません。
(一部のユーザーは、前段落の私の発言に異議を唱え、「將來どのような要件が追加されるか分からない」と主張します。これらのユーザーは、誤った情報を與えられているか、宗教的信念を表明しているかのどちらかです。時には、ハードワークが前に有利になることがあります。必須です。)
第一正規(guī)形に違反することに加えて、重複するグループ値列や単一の値に格納されるカンマ區(qū)切りリストには、他にも多くの実用的な問題があります:
:]]'<:> または MySQL 8.0 の場合:
idlist REGEXP '\\b2\\b'
李>リスト內(nèi)の要素を數(shù)えたり、他の集計クエリを?qū)g行したりするのは困難です。 カンマ區(qū)切りリストは間違っているので、これを私の本の最初の章にしました:
SQL アンチパターン、第 1 巻: データベース プログラミングの落とし穴の回避。
非正規(guī)化が必要な場合もありますが、@OMG Ponies が言及したように、これらは例外です。リレーショナル以外の「最適化」は、データの他の用途を犠牲にして、あるタイプのクエリに利益をもたらすため、非正規(guī)化に値するように特別な処理が必要なクエリを必ず把握してください。