模块化数据库布局:我的用例的正确方法?

时间:2012-03-30 18:33:37

标签: database-design relational-database database-schema

我正在开发一个模块化的Java Web应用程序。模块(可见层)和业务/数据库层之间的依赖关系由gradle解决。从技术上讲,我的数据库只需要为实体保存表,这些表实际上是由部署的可见模块使用的。但是,当我想在生产环境中迁移数据库时,这可能会导致潜在的麻烦。因此,除了从依赖项创建数据库模式之外,我还看到两个选项:

1)我对所有可用实体总是有一个模式。因此,我的实际数据库保存所有实体的表,甚至是任何已部署模块未使用的表。这使得在生产环境中迁移变得非常容易,但在开发期间使数据库和保存实体的文件夹变得混乱。

2)我有几个独立的模式,它们在逻辑上是分开的。每个模式都将导致服务器上的数据库。需要哪些模式,由模块依赖项解决。我为自己迁移每个模式。因此迁移仍然是可管理的。

数据库的服务器如下所示:

  • MySqlServer
    • AuthorizationDatabase
      • 用户表
      • RoleTable
      • UserRoleRelationshipTable
    • BlogPostDatabase
      • PostTable
      • CommentsTable

等。

但是,我不知道许多小型数据库而不是单个数据库的想法是否会导致潜在的麻烦。特别是在表现方面。

1 个答案:

答案 0 :(得分:0)

我建议使用单个数据库,原因如下:

a)MySQL可以处理几千个表,具体取决于可用的服务器资源

b)管理起来更容易

c)如果客户群超出一台服务器的限制,您可以创建一个新服务器来处理新一批客户,然后进行扩展