我正在集成两个系统,moodle 和 zen-cart。每个系统都有自己的表来存储用户数据。我需要两个系统为客户访问同一张表。 Moodle 有一个名为 mdl_users 的表。 Zen-cart 有一个名为“顾客”的表。这些表包含相似的数据,但字段名称不同:
mdl_users fields:
id, username, password, firstname, lastname, email, etc....
customers fields:
customers_id, customers_nick, customers_password, customers_firstname, customers_lastname, customers_email_address, etc...
每个系统中有数百个查询指向这些表(以一种没有很好封装的方式)。
有没有一种方法可以将一个表指向另一个表,这意味着对客户表的所有调用都将从 mdl_users 表中提取(指定字段名称关系)?我不想重写所有数百个查询,而是设置一次(或每个数据库调用调用一次)自动执行此操作。
希望示例结果:
此查询(来自 zen-cart 系统):
Select customers_password from customers where customers_id = :id
实际上返回结果,就像它已经运行一样:
select password from mdl_user where id = :id
(编辑/添加) mdl_users.id 是moodle 系统的主键字段。 (唯一、索引、自动编号)。 customer.customers_id 与 zen-cart 系统相同。
任何解决方案都必须在插入和更新时保持主键数字的一致性。
最佳答案
您可以使用触发器来执行此操作,搜索 sql 触发器。这可以从一个表到另一个表进行调用,我的意思是您可以对触发器进行编程,以便接收 Moodle 查询并生成 zen-cart 表的查询。
关于php - MYSQL表有两个不同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27751257/