1

我正在为数据中心设计一个库存 Web 应用程序。应用程序保留和显示的所有元数据始终按数据中心分组。例如,服务器列表、环境数量(服务器的逻辑分组)、客户等总是要为数据中心显示。该应用程序应该跟踪各个数据中心的资产。

我想就我应该如何持久化我的数据库模型以实现这一点获得建议。我想到的几种方法

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

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

4

1 回答 1

0

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

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

customers
    id              unsigned int(P)
    name            varchar(50)
    ...

servers
    id              unsigned int(P)
    model_id        unsigned int(F models.id)
    purchased       date
    ...

etc.

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

customers
    id              unsigned int(P)
    name            varchar(50)
    ...

servers
    id              unsigned int(P)
    model_id        unsigned int(F models.id)
    purchased       date
    ...

etc.

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

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

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

于 2013-09-05T14:46:00.130 回答