我正在使用Wordpress,PhpMyAdmin,MySQL。关于SQL和数据库,我还是一个新手,请耐心等待。
我有一个自定义数据表(这是用户信息的主表),我想将其与wp_users和wp_usermeta表双向关联-这意味着如果用户更新其个人资料(Users或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 |
––––––––––––––––––––––––––––––––––––––
基本上,这就是我要查询的内容。[[(除了我有更多行的usermeta):
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
这会创建我想要的表,但是如果更新了任何表,则不会在其他任何地方“同步”。这可能吗?是否可以通过某种触发器来完成(我仍然不熟悉触发器)?
create view custom_view as
select
u.username,
um.meta_value as job
u.id as user_id
from wp_users as users u
left join wp_usermeta as umeta um on um.user_id = u.ID and um.meta_key = 'job'