次のmodels.pyを持つアプリを含む非常に単純なプロジェクトがあります:
class UserAccount:
user = models.OneToOneField(User)
additional = models.CharField(max_length=100)
class Project:
name = models.CharField(max_length=100)
description = models.CharField(max_length=200, blank=True, null=True)
class Record:
user_account = models.ForeignKey(UserAccount)
project = models.ForeignKey(Project)
date = models.DateTimeField()
さまざまなチームがこのアプリを使用できるようにしたいと考えています。ただし、テーブルを何らかの方法で分離したい (すべてのアカウント、プロジェクト、およびレコードを同じテーブルに配置したくない)。
1 つの解決策は、このアプリをチームごとに複製することですが、これは良くありません。もう 1 つはhttps://github.com/bcarneiro/django-tenant-schemasのようなものを使用することですが、複数のサブドメインは避けたいと考えています。
URLを管理したい方法は次のとおりです。
- mysite.com/teamA/
- mysite.com/teamB/
- mysite.com/admin/teamA/
- mysite.com/admin/teamB/
Django のマルチテナンシーに関する Web 上の多くの記事を読みましたが、私のニーズに合った解決策が 1 つも見つかりませんでした。
- 1 DB (同じテーブル内のすべてのテナント データではない)
- サイトまたはサブドメインは使用せず、代わりに mysite.com/tenant1/、mysite.com/tenant2/、
ご協力いただきありがとうございます!