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

时间:2013-09-03 03:57:57

标签: database-design

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

我想获得有关如何持久保存数据库模型以实现此目的的建议。我想到的几种方法

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

1 个答案:

答案 0 :(得分: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就是我的方式。