我不确定我正在尝试做的事情是否可能,但如果是的话,我显然没有正确使用谷歌搜索,并且希望我能在这里获得任何帮助,即使它只是指向“白痴指南”的链接。
好的,目前,我有一个包含 150 多条记录的数据库表。每条记录都包含基本详细信息(姓名、位置、联系信息等)和登录凭据(用户 ID、密码等)。在潜在用户成功接受采访后,这些详细信息由网站管理员(即没有公众注册)捕获。创建记录时,会为用户分配一个 6 字符的“用户名前缀”(例如“UNPREF”),并将其与自动递增的用户 ID(例如 125)一起用作用户名(例如 UNPREF125)登录网站。但是,用户名实际上并未存储在数据库中。相反,当用户登录时,登录脚本会拆分提供的用户名,并根据其相关字段检查两个块。
除了这个主用户表之外,还有许多其他表包含附加信息(例如,教育资格、工作经历等),这些信息根据主表通过 UserID 链接到用户。现在,用户和管理员都可以更新用户的数据,因此,我为每一行创建了一个字段,记录上次修改记录的人 ( modby
) 和时间 ( modon
)最后,从理论上讲,在没有任何“他说/她说”的废话的情况下与那个特定的人打交道。
现在这是棘手的一点。我的用户和管理员存储在不同服务器上的不同数据库中(后者超出了我的控制范围),但我最近发现了 Federated Tables 的乐趣,它工作得很好。一个小怪癖,虽然;因为我的用户和管理员存储在不同的数据库中,并且因为我想最大化我可以存储在单个数据库中的记录数量(每个数据库的大小限制为 100mb),以公司当前的扩张速度和每个分支机构需要两个管理员帐户,用户和管理员最终使用相同的 UserID 并非不可能。因此,这些modby
字段存储完整的用户名(即 UNPREF125 - 管理员获取自己的唯一用户名前缀,以便区分管理员和用户)
现在,也许是因为我是 Federated Tables 的新手,但我似乎无法找到一种方法来比较服务器 A 上的表中的字段(即)与联合表中的modby
2 个单独字段(即unprefix
和),userid
从服务器 B 调用,但我想出了一个解决方法,在服务器 B 的表中创建一个附加字段,即username
存储合并值(即“DBPREF125”)并modby
对此进行检查,它工作正常(我肯定有更简单的方法,但我会把那节课留到下一次)。
现在,这是我的问题。admin 表目前很小(只有 26 条记录),因此我使用 phpMyAdmin 手动捕获了用户名,但我希望避免为用户表中的 150 多条记录手动创建用户名。有什么方法可以让 MySQL 提取userid
和unprefix
字段的值,将它们连接在一起并将结果存储到username
同一记录的字段中,或者我是否需要为此转向 PHP,如果是,我将如何去对这个?
我为我的问题的长度道歉,但我希望这将有助于解释为什么谷歌今天不是我的朋友。
提前谢谢了。