Какие связи существуют между таблицами базы данных WordPress, такими как "Posts" и "Users"? В таблицах базы данных WordPress, которые я просмотрел в PhpMyAdmin, я не увидел явных ограничений внешнего ключа, которые обычно указывают на связи между таблицами. Однако, посты в WordPress, очевидно, имеют авторов, поэтому каким образом они взаимосвязаны?
В WordPress используется способ связи таблиц базы данных, известный как "родительская-дочерняя связь" или "связь пост-автор". В основном, в таблице "Posts" (или "wp_posts") есть столбец "post_author", который содержит идентификатор пользователя (ID) автора данного поста. С помощью этого идентификатора выполняется связь с таблицей "Users" (или "wp_users") по столбцу "ID", где хранится информация об авторах. Хотя в таблицах базы данных WordPress нет явных ограничений внешнего ключа, связь между "Posts" и "Users" поддерживается программно на уровне ядра WordPress. Когда вы запрашиваете информацию о посте, WordPress автоматически запросит информацию об авторе этого поста из таблицы "Users" на основе значения "post_author". Это позволяет WordPress корректно отображать информацию об авторе поста, то есть связывать посты с их авторами.
Через id:
- Поле post_author в таблице wp_posts содержит id пользователя, который является автором поста.
- Поле user_id в таблице wp_usermeta содержит id пользователя, которому принадлежат метаданные.
- Поле comment_post_ID в таблице wp_comments содержит id поста, к которому относится комментарий.
Через промежуточные таблицы:
- Таблица wp_term_relationships связывает записи с категориями и тегами.
- Таблица wp_postmeta хранит метаданные для записей и других объектов.
Например, связь между постом и его автором:
- Поле post_author в таблице wp_posts содержит id пользователя, который является автором поста.
- id пользователя можно использовать для поиска записи в таблице wp_users, чтобы получить информацию о нем.
phpmyadmin:
- Ограничения внешнего ключа отображаются только для связей, реализованных с помощью внешних ключей.
- Другие связи можно увидеть, используя другие инструменты, например, плагин Adminer .