【问题标题】:Single tenant, multiple application database design?单租户、多应用数据库设计?
【发布时间】:2009-09-28 23:37:39
【问题描述】:

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

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

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

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

你在这个问题上的经验是什么?

【问题讨论】:

    标签: sql mysql database-design data-modeling


    【解决方案1】:

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

    在您的情况下,我会选择使用 sectionIds 的单模式单数据库方法。这真的 与多租户相同,也许不需要进行访问控制。

    您当然会在并发事务之间进行锁定。但是,这绝不会引起问题,因为不同部分的事务不会以冲突的方式对记录进行操作(创建新部分时除外 - 您可能会有另一个表告诉您拥有哪些部分)。

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2012-09-24
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 2018-07-02
      • 2022-01-11
      • 2023-01-03
      相关资源
      最近更新 更多