あなたが話していることはmultitenancyと呼ばれます。
これにはいくつかのアプローチがあります。
最も一般的なアプローチは次のとおりです。
単一データベース
すべてのテナントが同じデータベースを共有します。したがって、すべてのテナントに関する情報を含む 1 つのテナント テーブルが作成されます。他のすべてのテーブルは、テナント ID を外部キーとして使用します。
問題は、ユーザーが自分の情報にのみアクセスできるようにする必要があることです (たとえば、ユーザーは uri の ID を変更しようとする可能性があります)。したがって、ユーザーがアクセスしようとしている各オブジェクトを検証する必要があります。
複数のデータベース
一部のデータベース エンジン (RavenDB など) は、複数のデータベースを問題なく処理できます。これは、各顧客が独自のデータベースを取得することを意味します (ユーザーが識別された後、各リクエストの最初にロードします)。
そのため、認証中に 1 人の db ユーザーがいて、テナントと顧客ごとに 1 つのデータベースを識別できます。
このソリューションの利点は、テナントが互いのデータベースにアクセスできないことです。(アカウントがハッキングされていない限り)