MySQLのJSON型
いままでもJSONをstringのカラムに入れることができたが、それに比べて
JSONがvalidでないとerrorになってくれる
アクセスを早くするような構造に内部で変換してくれる
使い所
JSONは絶対に必要ではない限り利用はおすすめしません。MySQLでドキュメント指向のNoSQLデータベースを模倣できるかもしれませんが、SQLの多くの利点が損なわれてしまうでしょう。本物のNoSQLシステムに切り替えた方がまだましです。
しかし、JSONを使えば、SQLをベースにしたアプリケーション内の分かりにくいデータ要件に対して、多少でも手間を省けるでしょう。
中心的な使い方がドキュメント指向DBに向いているならそちらをつかう
使い所
列が実行時まで決まらず、有限のバリエーションに収まらないとき(例: エンドユーザーが作成するアンケートフォーム等)で、かつそれを EAV アンチパターンで解決したくないときに使います(バリエーションがそこまで多くないなら STI や CTI などのパターンで仕留めます)
NULLを許容しながら1つのテーブルを作成するSTI NULLを可能な限り排除すべくデータセットごとにテーブルを作成するCTI