【问题标题】:Structuring database configuration settings结构化数据库配置设置
【发布时间】:2014-09-08 12:25:49
【问题描述】:

我正在构建数据库的配置设置,尽可能地抽象配置数据。
在最常见的 LAMP 环境中,连接数据库需要以下四个信息:

  • db_host
  • db_name
  • db_user
  • db_password

我想了解两点:

1 - 凭据是否与 hostdb 相关?

如果 userpasswordhost 相关,他们可以访问该主机上的所有可用数据库,因此我可以代表以这种方式配置数据(无论是数组,对象还是其他):

db_config
    └─db_host
        ├─db_user
        ├─db_password
        └─databases
            ├─db_name
            └─db_engine

如果 userpassword 与特定的database 相关,则他们可以访问唯一指定的db_name;在这种情况下,我可以通过这种方式对配置数据进行模式化:

db_config
    └─db_host
        └─databases
            └─db_name
                ├─db_engine
                ├─db_user
                └─db_password

2 - 具有不同引擎的数据库可以存在于同一主机上吗?

数据库可能由不同的引擎(例如 PostgreSQL、MySQL、MSSQL、Oracle、Firebird 等)提供支持。
如果凭证与主机相关,并且如果具有不同引擎的数据库可能在同一主机上共存,则配置数据可以这样表示:

db_config
    └─db_host
        ├─db_user
        ├─db_password
        └─databases
            └─db_name
                └─db_engine

但是这种结构不允许具有不同引擎的数据库具有相同的名称
具有不同引擎的数据库可以在同一主机上共存并且使用相同的名称吗?
如果是,配置数据可以这样构造:

db_config
    └─db_host
        └─db_engine
            └─databases
                ├─db_name
                ├─db_user
                └─db_password

哪种数据结构适合大多数可能的实际情况?

【问题讨论】:

  • 数据库模式不是树 - 将它们定义为表,在某些情况下,某些表将有两个外键作为主键 - 因此修复“结构不允许具有不同引擎的数据库具有相同名字”
  • 所以您是在告诉我 1. 凭据与数据库相关,而不与主机相关,2. 一个主机可能拥有具有不同引擎和相同名称的数据库,对吗?
  • 是的,我怀疑更多的差异 -0 你所说的名称是什么意思一个数据服务器可以是一种类型的多个可以有多个数据库,并且所有数据库中的服务器之间的凭据可能不同,也许某些系统的每个数据库。这个问题太粗鲁了,因为有很多组合

标签: database database-design data-structures


【解决方案1】:

这有点复杂,因为不同的供应商有不同的功能。

首先,用户/密码凭据应该独立存在。它们可能应用到特定的数据库服务器,但也可以用于多个数据库或其他一些软件。它们基本上是正交的。

一些数据库支持 Active Directory/LDAP/Kerberos、SSL 证书、PAM 等登录,而不仅仅是用户名/密码。

其他几点:

  • 由于复制,数据库服务器可能跨多个主机运行
  • 一台计算机可以在相同的 IP 地址(通过不同的端口)或不同的 IP 地址上托管多个数据库服务器。查看 PostgreSQL 集群
  • 一个数据库集群可以有多个实例。查看 SQL Server 实例
  • 一个数据库集群可以有多个数据库
  • 一个数据库可以有很多模式
  • MySQL 将其架构称为“数据库”

至少在 PostgreSQL 中,用户是集群的子节点,而不是特定数据库的子节点,但我记得有一个晦涩的设置可以让您更改它...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多