gpt4 book ai didi

mysql - 在 Web 应用程序设计模式之间共享数据库

转载 作者:行者123 更新时间:2023-11-29 00:31:04 25 4
gpt4 key购买 nike

我有几个不同的 Web 应用程序,它们有自己独立的数据库。所有这些不同的 Web 应用程序还使用一个公共(public)数据库进行身份验证,其中包含我所有用户的列表和用户名。为了简单起见,假设我的应用程序数据库就像一个论坛,它们跟踪用户的帖子;在表中,他们将存储用户 ID 和一些帖子文本。

现在我遇到的问题是我的一些团队成员觉得我们正在做的事情是困惑和摩擦的,因为如何让我的应用程序在他们的帖子旁边显示用户名有点痛苦,这是一个非常共同任务。首先,我必须转到应用程序数据库并执行诸如 SELECT userID, postText FROM tblPosts 之类的操作,然后我必须使用该 userID 并转到用户数据库并获取实际的名称 SELECT name FROM tblUsers WHERE userID = X。然后将来自这两个查询的数据合并在一起以将其显示在页面上。

我个人不介意我们这样做的方式,因为我认为只使用一个单独的用户数据库来保证数据的稳定性很重要,但我的一些团队成员想要将所有用户名复制到本地应用程序数据库,并在记录帖子时将用户名存储在用户 ID 旁边,因此获取该信息非常简单。如果用户想要更改他们的名字(这种情况很少见,我们只有大约 100 个用户),我们应该只在公共(public)数据库和所有应用程序数据库中运行更新。

这似乎是人们可能遇到的常见问题。有人可以权衡一下处理该问题的常用方法以及我们可能想做什么吗。

最佳答案

您的系统具有有效的单点登录方案(集中式用户身份和身份验证)。这是一个巨大的竞争优势。

您已经简单干净地构建了它。那更是巨大。这种事情很难做对,而你做到了。

(如果您尝试使用 LDAP 或 Active Directory 等系统来构建它,您将需要维护大量复杂的代码。)

不要让您的开发人员同事为了个人便利而牺牲这一优势。如果您必须将更改同步到用户数据库,当事情变得不同步时,您遇到问题。这是一个何时的问题,而不是一个如果的问题。

顺便说一下,如果你的用户数据库和网站特定的数据库在同一个 MySQL 服务器上,你可以做这样的事情来集成两个不同数据库的使用。这可能会满足您的开发人员的需求。

  SELECT u.username, d.opname
FROM userdatabase.users u
JOIN website.transaction d ON u.userid = d.userid

但如果你这样做,你将很难在未来将你的各种网站数据库迁移到其他服务器机器上。

关于mysql - 在 Web 应用程序设计模式之间共享数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com