サーバーサイドエンジニアの田実です! ヤプリのプロダクトである Yappli、Yappli CRM ではお客様のアプリごとにユーザ属性を自由にカスタマイズできます。 例えばクライアントAは「姓」「名」「性別」の属性を使い、クライアントBは「ログインID」「電話番号」の属性を使う、といったように自由に属性を追加・利用できます。 このような お客様自身が属性を自由にカスタマイズできる 「カスタムフィールド」の機能はSaaSの要件としては頻出ですが実装方法は複数あり、それぞれ一長一短があります。今回はカスタムフィールドの実装パターンとメリット・デメリットについてご紹介します。 ※テーブル定義やSQL例はMySQLを想定して記述しています。 EAV 横持ちの汎用カラム JSONカラム クライアントごとのカスタムテーブル まとめ EAV Entity Attribute Valueの略称で1レコード