私はSaaSスタイルのウェブサイトを構築しています。そこでは、複数のクライアントがすべて同じワークフローとデータを管理しています。つまり同じデータベースです。あなたのデータベースの中の複数のクライアントのための "壁の庭"を作成する最もよい方法は何ですか?
このコンセプトの単語があるかどうかはわかりませんが、データベースのActiveRecord呼び出しがユーザーの正しいclient_idによってフィルタリング/制限されるように、データを自動分離する確立された方法がありますそれはログインしていますか?
もちろん、「where client_id = ?
」を追加して、ユーザーのクライアントIDを1つのActiveRecordリクエストごとに追加するだけの簡単な方法はあります。
モデルのフィルタのアイデアがあるので、どのような検索方法(動的なものも含む)が自動的にclient_id
をタックしますか?だから私はちょうどModel.find_by_what_I_want(foo)
を行うことができます、そして、それは私が明示的にそれを指定しなかったにもかかわらず、正しいクライアントIDによって所有されたレコードだけにそれを制限することを自動的に知っていますか?
どのDBMSを使用していますか? –
** [multitenancy](http://en.wikipedia.org/wiki/Multitenancy)**このコンセプトの言葉ですか? –