我想存储用户个人资料信息。在网上研究了一下之后,我对以下选项感到困惑:
使用 LDAP 服务器(例如:Open DJ)——我可以编写 Java 客户端,它可以使用 LDAP API 与 LDAP 服务器交互。
将用户配置文件作为 JSON 文档存储在数据库中(如在 Elastic DB 中)- No SQL 数据库然后可以索引文档以缩短查找时间。
在选择其中一种方法之前,我应该记住哪些因素?
我想存储用户个人资料信息。在网上研究了一下之后,我对以下选项感到困惑:
使用 LDAP 服务器(例如:Open DJ)——我可以编写 Java 客户端,它可以使用 LDAP API 与 LDAP 服务器交互。
将用户配置文件作为 JSON 文档存储在数据库中(如在 Elastic DB 中)- No SQL 数据库然后可以索引文档以缩短查找时间。
在选择其中一种方法之前,我应该记住哪些因素?
首先,如果您要存储密码,那么使用 LDAP 是不费吹灰之力的 IMO。请参阅http://smart421.com/smart-identity-and-fraud/why-bother-with-an-ldap-anyway/。
否则,我建议您对每个解决方案进行 PoC(不要忘记为 OpenDJ 添加索引,您也可以使用 Rest2LDAP)看看它们如何满足您的需求。这两种产品都是开源的,因此很容易上手。
如果您的用户群是一个已知组,可能已经在现有 LDAP 存储库中拥有帐户,或者需要在系统之间共享用户帐户信息,那么使用并添加到现有 LDAP 存储库是有意义的。
如果您从头开始并且主要是外部未知用户,除了这个应用程序之外,他们与您的基础设施没有其他交互,那么 LDAP 不是一个好的选择,因为您在创建和管理服务器时获得了开销。然后,轻量级 JSON 方法似乎更适合(甚至认为 LDAP 中的 L 代表“轻量级”)。
预期用户的数量不是一个考虑因素 - 在任何一种情况下,您都需要仔细处理大量人口。
另请参阅此问题以获取更多见解将用户数据存储在 LDAP 而不是 RDBMS 中的原因