我有一些相关的网站,看起来很不幸的是他们有完全独立的用户数据库。我一直在考虑如何统一数据库的不同选择:
在我的内容管理系统的一个副本而不是独立软件上重建要运行的网站。优点:似乎很干净。缺点:需要重写其中一个站点的后端以支持其他站点的不同功能而变得复杂。
使用我写的OAuth后端与Facebook交互,在站点之间来回进行身份验证。优点:似乎正在使用OAuth来实现它的目的。缺点:它需要至少一些冗余,我需要在两个站点上存储重复的用户数据,这可能会失去同步。对于在同一台服务器上运行的两个站点来说,似乎也有些过分。
无论何时在任一站点上创建或修改帐户,都将连接到这两个数据库,并将修改应用于其他站点。优点:似乎避免了失去同步的风险,并避免了在站点之间创建和接收OAuth数据的复杂性。缺点:它需要在站点之间完全复制用户信息。
选择其中一个站点具有规范数据库,并让其他站点的用户身份验证机制连接到第一个站点的MySQL数据库,同时仍然连接到单独的数据库以实现站点的其余功能。 / p>
我对任何选项都不满意,尽管#4感觉最简单,因为我正在思考它。尽管如此,在我开始这样一个项目之前,我认为我会要求我可能会忽略的潜在陷阱,因为这些想法都不是完全琐碎的。我很欣赏可能被视为“最佳实践”的建议,或许更重要的是,哪一个会对服务器资源产生最大影响。我正在使用Perl的DBD::MySQL
与数据库进行交互。