先日、SmartHRさんのDB移行の話が話題になりました。 これは、「つらくないマルチテナンシーをどのように実現したか」という生々しくインパクトのあるプレゼンでした。 ただ、個人的にはちょっと引っ掛かるところがありました。そもそもテナント毎にテーブルを作成するという設計に無理があったのではないかと思ったからです。Citus Cloudで解決できたそうなので結果オーライではあるのですが。 マルチテナントでDBを分けたくなる気持ちはわかります。②のパターンですね。 それは、顧客データを全て一つのDBに混ぜてしまうのはデータ混濁のリスクがあるのでDBの機能・ユーザーでデータを分離したいというのがその理由なのだろうと思います。 ですが、本当にDBを分ける必要があるかはよく考える必要があると思います。なぜなら、テナントごとに1 つのDBをサポートするという状態はマルチテナンシーが回避しようとしている
![RDBを使わない究極のマルチテナント](https://cdn-ak-scissors.b.st-hatena.com/image/square/f867d2f6c61ef29634d702e70cbcc1250b0b0576/height=288;version=1;width=512/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1200%2F1%2APp8e5dCATvCuNchvTv9Dfg.jpeg)