データ モデルをさまざまな方法で構造化することの長所と短所を評価しようとしています。複雑なネストされたデータ型を SQL テーブルの個々の列に詰め込むことで自分自身を撃つことになるかどうかを知りたいです。 .
たとえば、構造体の配列 (さらに悪いことに、ハッシュのハッシュの配列) をシリアル化し、それを 1 つの列に保存したいとします。ほとんどの場合、多少ネストされた JSON ディクショナリになります。何かのようなもの:
user_id | user_related_data_blob
---------------------------
1 | { .... }
一部のデータがユーザーにあまり密接に関連していない場合に備えて、すぐにわかる明らかな短所はデータ結合です。取得された各行のサイズもあるため、特にほとんどのデータがクライアントによってすぐに必要とされない場合は、Web からのフェッチがかなり遅くなる可能性があります。それらの列で SQL を実行することも、それをサポートするための特別な技術がない限り、かなり複雑になります (そしておそらくインデックス付けできません)。
唯一の利点は、コンテキストによっては重要かもしれませんが、複雑なスキーマを作成したくない場合、すべての制約が正常であることを確認するのに多くの時間を費やしたくない場合と、はるかに少ない制約があることです。可動部品。簡単なプロトタイプのようなものでは、それは理にかなっているかもしれません.
ここで何か不足していますか?SQL の世界では、個々の列にデータをネストしてはならないという経験則はありますか? 良いガイドラインはありますか?