首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有两个不同名称的MYSQL表

具有两个不同名称的MYSQL表
EN

Stack Overflow用户
提问于 2015-01-03 10:49:41
回答 2查看 900关注 0票数 0

我正在集成两个系统,moodle和zen-cart。每个系统都有自己的表来存储用户数据。我需要两个系统为客户访问相同的表。Moodle有一个名为mdl_users的表。Zen-cart有一个名为customers的表。这些表包含相似的数据,但具有不同的字段名称:

代码语言:javascript
复制
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...

在每个系统中都有数百个查询指向这些表(以一种封装得不好的方式)。

是否有一种方法可以将一个表指向另一个表,这意味着对customers表的所有调用都将从mdl_users表中拉出(指定了字段名关系)?我并不打算重写所有数百个查询,而是设置一次(或每个DB调用调用一次)自动执行此操作的内容。

希望举例结果:

这个查询(来自zen-cart系统):

代码语言:javascript
复制
Select customers_password from customers where customers_id = :id

实际返回结果,就像它已经运行一样:

代码语言:javascript
复制
select password from mdl_user where id = :id

(编辑/添加) mdl_users.id是moodle系统的主键字段。(唯一、索引、自动编号)。customers.customers_id对于禅宗购物车系统也是一样的。

在进行插入和更新时,任何解决方案都必须保持主键编号的一致性。

EN

回答 2

Stack Overflow用户

发布于 2015-01-03 10:53:53

您可以使用触发器来执行此操作,搜索sql触发器。这可以从一个表调用到另一个表,我的意思是,您可以编程触发器,以便接收Moodle查询并为zen-cart表生成查询。

票数 0
EN

Stack Overflow用户

发布于 2015-01-10 04:36:24

哪一个是“主”系统?用户是同时从Zen Cart和Moodle添加的,还是只从一个(或不同的来源)添加的?

我不认为只使用sql就能做到这一点,尽管如前面所建议的,视图可以是部分解决方案。我不明白如何确保“插入”按其应有的方式工作,如果仅仅是因为数据可能存在于一个系统中,而不是存在于另一个系统中。

Moodle提供了几种方法,可以使用外部系统来同步用户:“外部数据库身份验证”是我能想到的第一个方法,但在这种情况下,我可能会使用它(auth/ db )来创建一个新的插件,实际上可以用Moodle的新用户/更新用户来更新Zen Cart的数据库(如果可以在Moodle中添加用户的话)。

我对Zen Cart的了解还不够多,无法在这方面提出建议(尽管似乎没有任何"user/auth plugins"),但它值得研究。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27751257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档