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

Database design 模块化数据库布局:我的用例的正确方法?,database-design,relational-database,database-schema,Database Design,Relational Database,Database Schema,我正在开发一个模块化的Java Web应用程序。模块(可见层)和业务/数据库层之间的依赖关系由gradle解决。所以从技术上讲,我的数据库只需要保存实体的表,这些实体实际上由部署的可视模块使用。但是,当我想在生产环境中迁移数据库时,这可能会导致潜在的问题。因此,除了从依赖项创建数据库模式之外,我看到了两个选项: 1) 对于所有可用的实体,我总是有一个单一的模式。因此,我的实际数据库保存了所有实体的表,即使这些实体没有被任何部署的模块使用。这使得在生产环境中进行迁移非常容易,但会使数据库和在开发过

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

1) 对于所有可用的实体,我总是有一个单一的模式。因此,我的实际数据库保存了所有实体的表,即使这些实体没有被任何部署的模块使用。这使得在生产环境中进行迁移非常容易,但会使数据库和在开发过程中保存实体的文件夹变得混乱

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

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

  • MySqlServer
    • 授权数据库
      • 用户表
      • 角色表
      • UserRoleRelationshipTable
    • BlogPostDatabase
      • 可张贴
      • 评论稳定
等等


然而,我不知道用许多较小的数据库而不是一个单一数据库的想法是否会导致潜在的麻烦。特别是在性能方面。

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

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

b) 这更容易管理


c) 如果客户群的增长超出了一台服务器的限制,您可以创建一台新的服务器来处理新的一批客户,然后再扩展这批客户,我建议使用一个数据库,原因如下:

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

b) 这更容易管理

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