【发布时间】:2020-09-16 06:52:31
【问题描述】:
我正在使用 Wordpress、PhpMyAdmin、MySQL。 我对 SQL 和数据库也很陌生,所以请多多包涵。
我有一个自定义数据表(这是用户信息的主表),我想将它与 wp_users 和 wp_usermeta 表双向关联——这意味着如果用户更新了他们的个人资料(用户或 Usermeta 表)然后自定义数据表将自动更新,而无需我手动输入他们更新的信息。
同样,如果我编辑自定义数据表,我希望用户和 Usermeta 中的相关信息自动更新。
我尝试为我的脑海中的内容绘制一个粗略的图表。 Diagram of data handling
当前的系统很糟糕,很难维护。另一个问题是有许多 SQL 报告使用当前的自定义数据表。我知道我正在寻找的解决方案很可能意味着创建一个全新的表。没关系。
User
–––––––––––––––––––
| ID | username |
|–––––+–––––––––––|
| 376 | John |
| 377 | Paul |
| 378 | Ringo |
–––––––––––––––––––
Usermeta
–––––––––––––––––––––––––––––––––––––––––––––
| meta_id | user_id | meta_key | meta_value |
|–––––––––+–––––––––+––––––––––+––––––––––––|
| 8 | 1 | job | Keys |
| 102 | 2 | job | Vocals |
| 203 | 3 | job | Drums |
–––––––––––––––––––––––––––––––––––––––––––––
Custom_Table
––––––––––––––––––––––––––––––––––––––
| ID | username | job | user_ID |
|––––+–––––––––––+–––––––––+–––––––––|
| 1 | John | Keys | 376 |
| 2 | Paul | Vocals | 377 |
| 3 | Ringo | Drums | 378 |
––––––––––––––––––––––––––––––––––––––
基本上,这就是我的查询(除了我有更多的用户元行):
CREATE TABLE custom_table
SELECT users.username,
MAX(CASE WHEN meta_key = 'job' THEN meta_value ELSE NULL END) AS job,
users.ID
FROM wp_users as users, wp_usermeta as umeta
WHERE umeta.user_id = users.ID
这会创建我想要的表,但如果任何表被更新,它不会在其他任何地方“同步”。这可能吗?会不会是通过某种触发器来完成的(我还是不熟悉触发器)?
【问题讨论】:
标签: mysql sql wordpress join sql-view