在我作为首席开发人员的项目中,我们之前有一个存储单个 XML 文件的网络配置。配置包含有关网络布局的信息 - 其组成主机,有关每个主机的各种详细信息,如操作系统、平台、在每个主机中配置的用户、每个用户的多个属性等等。在即将发布的产品版本中,我们希望将数据移动到某种数据库中,因为配置将被扩展以包含更多元素和细节,并且在 XML 文件中维护它们将开始变得繁琐。
第一个选择是 RDBMS。然而,由于配置数据的分层性质和可扩展性标准,目录服务器似乎是更好的选择。使用目录服务器的动机是
在目录服务器中建模分层数据比在 RDBMS 中更容易。
创建/定义扩展具有附加属性的基本类型的新实体类型也容易得多。从解决问题的角度来看,这是非常有吸引力的。
配置数据的读取频率将高于更新频率。尽管性能不是问题,但目录服务器非常适合此特性。
在对 LDAP 和目录服务器的基础知识进行了大约一周的引导之后,我现在对目录服务器的选择有些怀疑。我看到几个问题:
LDAP 不如 RDBMS 主流。更多的人有过一些 SQL 的经验,并且可以比目录服务器更快地开始使用 RDBMS。正如我之前提到的,我花了一个多星期的时间来学习 LDAP 的基础知识(如何创建模式、定义 DIT、添加条目、将数据导出到 LDIF 文件等等)。这很重要,因为当新成员加入团队时,他/她不会面临学习曲线。
将来我们可能有更多的数据需要维护和存储在数据库中。目录服务器可能不是此类数据的好选择(例如,数据可能会随着读取的频率而更新)。在我看来,拥有两种存储机制是一种负担。
在更具政治性的方面,我不会因为选择 RDBMS 而受到指责/解雇,即使它不适合当前手头的问题。对于目录服务器,如果上面的第 2 点成为现实,我不想回答“你为什么不早点想到这一点?”这个问题。
我正在寻找有关如何做出选择的建议。有没有人遇到过类似的情况?
EDIT-1:我们在项目中对此进行了讨论,我在这里提出了确切的观点。由于以下原因,我们很可能会选择不做任何进一步评估的 RDBMS:
第 2 点被认为比其他任何事情都重要。
我单位内部的想法似乎相当保守,各个级别的人都希望安全行事。不过我真的不能怪他们。
“为什么不是 RDBMS?” 是第一个问题。“可以用 RDBMS 完成吗?” 是第二个。我终于收到消息了。