我有几个不同的 Web 应用程序,它们有自己独立的数据库。所有这些不同的 Web 应用程序还使用一个通用数据库进行身份验证,其中包含我所有用户的列表和用户名。为了简单起见,假设我的应用程序数据库就像一个论坛,它们跟踪用户的帖子;在表格中,他们将存储用户 ID 和一些帖子文本。
现在我遇到的问题是,我的一些团队成员觉得我们正在做的事情是混乱和摩擦的,因为如何让我的应用程序在他们的帖子旁边显示用户名有点痛苦,这是一项非常常见的任务。首先,我必须访问应用程序数据库并执行类似的操作,SELECT userID, postText FROM tblPosts
然后我必须使用它userID
并访问用户数据库并使用SELECT name FROM tblUsers WHERE userID = X
. 然后将来自这两个查询的数据合并在一起以将其显示在页面上。
我个人并不介意我们这样做的方式,因为我认为只使用一个单独的用户数据库来保持数据的稳定性很重要,但是我的一些团队成员希望将所有用户名复制到本地应用程序数据库中,并且记录帖子时将用户名存储在用户 ID 旁边,这样可以非常简单地获取该信息。如果用户想要更改他们的名字(一个非常罕见的事件,我们只有大约 100 个用户),我们应该只在公共数据库以及所有应用程序数据库中运行更新。
这似乎是人们可能遇到的常见问题。有人可以权衡解决问题的常用方法以及我们可能想做的事情。