はじめに 複数ユーザー(複数企業)のデータを 1 つのアプリケーションで扱う場合、マルチテナントという考え方がとても便利です。 ただ、マルチテナントを採用する際に必ず悩むのが DB 設計。 テナントごとに DB を分けるべきか 1 つの DB にまとめるべきか どの DB を採用すべきか 結論から言うと、私はPostgreSQL一択だと思っています。 理由はシンプルで、RLS(Row Level Security)が強すぎるからです。 マルチテナントとは? マルチテナントとは、1 つのアプリケーションで複数の顧客(企業)を扱う設計のこと。 このとき重要なのは「絶対に他ユーザーのデータが混ざらないこと」です。 特にBtoBサービスにおいては、他社のデータが混ざる・見えることは「死」を意味します。 PostgreSQL を選ぶべき最大の理由:RLS(Row Level Security) 「こ

