【发布时间】:2013-12-08 04:36:39
【问题描述】:
在这里,我们正在设计用于存储员工详细信息的低级业务流程。 (另一个团队处理更高级别的设计)。我们目前达成的共识是:
- 我们将员工的用户名、姓名、电话号码、电子邮件和 [纯文本] 默认密码等存储在 RDBMS(MySQL 或 SQL Server)中。
- 此 RDBMS(“DB”),即员工信息的 ssot,被导出到 LDAP 系统(OpenLDAP 或 Active Directory),该系统又成为主要的身份验证机器。用户的密码仅存储在 LDAP 中。
- 将构建一个“守护程序”来持续检查两者之间的完整性。例如,它将每下午 2 点检查一次并报告发现的任何异常情况。
第一个问题:上述设计是否反映了最佳实践?
我们目前寻求的是关于新员工数据输入(或编辑现有员工信息)的设计。一个人通过一个界面输入足够的员工信息,当他/她点击“提交”按钮时:
- 选项 1:调用 Web 服务,该服务将做两件事:更新 DB 条目和更新 LDAP 相应条目。任一过程中的任何错误都将取消整个更新操作。
- 选项 2:Web 服务将更新 DB 中的条目。然后,这将触发将更新的记录导出到相应 LDAP 条目的过程。
- 选项 3:Web 服务将更新 DB 中的条目。批处理过程每隔一小时不断检查 DB 和 LDAP 之间的完整性,如果两者之间存在差异,它将以 DB 作为源更新 LDAP。在此选项中,您将收到消息“您的更新信息将在 1 小时内生效。”
第二个问题:最好的选择是什么?我们还应该考虑其他常见的选择吗?最佳(或最常见)的做法是什么?
【问题讨论】:
标签: database database-design ldap database-connection