Database design 应用程序设计-分组元数据

Database design 应用程序设计-分组元数据,database-design,Database Design,我正在为数据中心设计一个库存web应用程序。应用程序持久化和显示的所有元数据始终由数据中心分组。例如,数据中心始终显示服务器列表、环境数量(服务器的逻辑分组)、客户等。假设应用程序可以跨多个数据中心跟踪资产 我想就如何保持数据库模型以实现这一点提出建议。我想到的几个方法 在应用程序中包含的所有元数据表(我们使用关系数据库)中添加数据中心id列。显示元数据时,为数据中心id应用默认筛选器。缺点-这似乎不是透明的方法,需要每个元数据表存储数据中心id 每个数据中心有不同的元数据表。这可能太多了,因为

我正在为数据中心设计一个库存web应用程序。应用程序持久化和显示的所有元数据始终由数据中心分组。例如,数据中心始终显示服务器列表、环境数量(服务器的逻辑分组)、客户等。假设应用程序可以跨多个数据中心跟踪资产

我想就如何保持数据库模型以实现这一点提出建议。我想到的几个方法

  • 在应用程序中包含的所有元数据表(我们使用关系数据库)中添加数据中心id列。显示元数据时,为数据中心id应用默认筛选器。缺点-这似乎不是透明的方法,需要每个元数据表存储数据中心id
  • 每个数据中心有不同的元数据表。这可能太多了,因为持久化的数据量不是很大

  • 还有其他更好的建议/想法吗?

    我想每个数据中心都有一个数据库,每个数据库都包含相同的表(服务器、客户、环境等):

    数据库1(用于数据中心1)

    数据库2(用于数据中心2)

    然后,在我的应用程序逻辑中,我会让用户能够查看不同的数据中心。所有查询都是相同的,它们只需要指向与所选数据中心关联的数据库

    当然,有人会希望能够查询所有数据库,以了解您的组织拥有多少台服务器,等等。因此,您必须编写单独的应用程序代码来处理此类管理/执行级别的内容


    换句话说,我认为您已经将范围缩小到了两个可能的选择,我认为您的选择#2就是我的选择。

    选项2还意味着在添加数据中心时在运行时创建数据库。除了这两个之外还有其他想法吗?@AndyDufresne如果不与您的组织更密切地联系,我想不出任何其他选择。可能有助于复制MySQL数据库。
    customers
        id              unsigned int(P)
        name            varchar(50)
        ...
    
    servers
        id              unsigned int(P)
        model_id        unsigned int(F models.id)
        purchased       date
        ...
    
    etc.
    
    customers
        id              unsigned int(P)
        name            varchar(50)
        ...
    
    servers
        id              unsigned int(P)
        model_id        unsigned int(F models.id)
        purchased       date
        ...
    
    etc.