单租户,多应用数据库设计?

时间:2009-09-28 14:41:38

标签: sql mysql database-design data-modeling

关于租赁的大多数问题都集中在多租户数据库设计问题上。我想知道单个租赁但多个应用程序。我正在开发的软件允许单个用户从单个代码库创建多个应用程序(我称之为“部分”):

  • 用户可以在domain.com/application-blog1内创建博客,另一个博客位于domain.com/application-blog2。

我已经决定使用单个数据库了但是我不确定是否应该为不同的应用程序实例或同一个表使用多个表,可能使用“sectionId”字段来区分它们。

我正在使用mysql和myisam表。在运行许多应用程序实例的情况下,是否可以将所有内容存储在同一个表中导致锁定问题?

您对此主题的体验是什么?

1 个答案:

答案 0 :(得分:1)

我认为人们通常不会在同一个数据库中使用多个表。如果您具有同一应用程序的多个实例,则通常具有单独的数据库 - 通常仅在以管理方式创建新实例时,而不是通过最终用户操作。在这种情况下,你将数据库的名称放入配置文件中,并将软件连接到正确的数据库。

在您的情况下,我会使用sectionIds来寻找单模式单数据库方法。这真的 与多租户相同,可能减去了进行访问控制的需要。

您当然会锁定并发事务。但是,这不应该导致问题,因为不同部分的事务不会以冲突的方式对记录进行操作(除非创建新部分 - 您可能会有另一个表格告诉您有哪些部分)。