wordpress 소스 코드 분석 - 데이터베이스 테이블 구조 (2)
7720 단어 언어 및 알고리즘
WordPress 데이터베이스 의 11 개의 데이터 시트 는 각각:
표 이름 (표 이름 을 클릭 하여 상세 한 소 개 를 보십시오)
묘사 하 다.
wp_commentmeta
문장 평론 추가 정보 표
wp_comments
문장 평론 정보 표
wp_links
링크 정보 표
wp_options
기본 설정 정보 표, 보통 getoption 으로 작 동 합 니 다. 이 표 는 보통 플러그 인 으로 데 이 터 를 저장 하 는 곳 입 니 다.
wp_postmeta
글 의 추가 데이터 시트, 예 를 들 어 글 조회 횟수, 글 의 사용자 정의 필드 등 이 여기에 저 장 됩 니 다.
wp_posts
글 정보 표 는 로그, 첨부 파일, 페이지 등 정 보 를 포함한다.워드 프레스 의 가장 중요 한 데이터 시트 입 니 다.
wp_terms
문장 분류, 링크 분류, 라벨 정보 표.
wp_term_relationships
문장 정보 표 (wp posts), 링크 표 (wp links) 와 의 관련 표를 분류 합 니 다.
wp_term_taxonomy
분류 정보 표, wp 구분terms 정보의 분류 유형, category, linkcategory 와 tag 세 가지 분류 유형.
wp_usermeta
사용자 추가 정보 표
wp_users
사용자 기본 정보 표.시스템 의 모든 사용자 기본 정 보 를 저장 합 니 다.
WordPress 데이터베이스 시트 간 의 관 계 는 무엇 입 니까?
이 문제 와 워드 프레스 데이터 시트 간 의 관 계 를 더욱 깊이 이해 하려 면 먼저 워드 프레스 블 로그 시스템 의 기능 을 생각해 보 자. 기본적으로 설 치 된 워드 프레스 2.6.2 버 전 블 로그 시스템 과 관련 된 데이터 정 보 는 주로 사용자 정보, 분류 메시지, 링크 정보, 글 정보, 글 평론 정보, 기본 설정 정보 등 6 가지 정 보 를 포함한다.
사용자 정보: 시스템 에 등 록 된 모든 사용자 의 계 정 정보.
분류 정보: 문장 분류, 링크 분류, 라벨 등 3 가지 분류 정 보 를 포함한다.
링크 정보: 바로 블 로그 시스템 의 우정 링크 정보 입 니 다.
글 정보: 블 로그 시스템 의 로그, 로그 에 생 성 된 첨부 파일, 페이지 등 정보.
글 평론 정보: 구체 적 인 로그 나 첨부 파일 에 대한 평론 정보.
기본 설정 정보: 시스템 의 기본 설정 정보, 예 를 들 어 블 로그 이름, 블 로그 주소 등.
WordPress 데이터베이스 의 11 개의 데이터 시트 는 상기 6 가지 데이터 정 보 를 저장 하기 위해 디자인 된 것 입 니 다. 이 표 들 간 의 전체적인 관계 구 조 는 다음 과 같 습 니 다.
위의 그림 에서 볼 수 있 듯 이 워드 프레스 블 로그 시스템 의 6 가지 데이터 정 보 는 각각 관련 된 데이터 시트 와 관 계 는 다음 과 같다.
정보 유형
관련 데이터 시트 및 관련 관계
사용자 정보
데이터 시트: wpusers、wp_usermeta, 관련 관계: wpusers.ID->wp_usermeta.user_id
분류 정보
데이터 시트: wpterms、wp_term_taxonomy 관련 관계: wpterms.term_id->wp_term_taxonomy.term_id
링크 정보
데이터 시트: wplinks、wp_term_relationships、wp_terms、wp_term_taxonomy、 wp_users、wp_usermeta 관련 관계: 1, 링크 소속 분류 확인 (1) wplinks.link_id->wp_term_relationships.object_id, (2)wp_term_relationships.term_taxonomy_id->wp_term_taxonomy.term_taxonomy_id (이 관 계 는 wp term taxonomy 표 의 taxonomy 분류 유형 과 "link category") (3) wpterms.term_id->wp_term_taxonom.term_id 2. 링크 소유자 확인 (4) wplinks.link_owner->wp_users.ID(5)wp_users.ID->wp_usermeta.user_id
글 정보
데이터 시트: wpposts、wp_postmeta、wp_comments、wp_term_relationships、wp_terms、 wp_term_taxonomy、wp_users、wp_usermeta 관련 관계: 1. 글 정보 확인 (1) wpposts.ID->wp_postsmeta.post_id 2. 글 댓 글 확인 (2) wpposts.ID->wp_comments.comment_post_id 3. 글 댓 글 작성 자 확인 (3) wpcomments.comment_author->wp_users.ID (4)wp_users.ID->wp_usermeta.user_id 4. 문장 소속 분류 확인 (5) wpposts.ID->wp_term_relationships.object_id, (6)wp_term_relationships.term_taxonomy_id->wp_term_taxonomy.term_taxonomy_id (이 관 계 는 wp term taxonomy 표 의 taxonomy 분류 유형 에 따라 'category' 또는 'tag') (7) wpterms->term_id->wp_term_taxonomy 5 、 글 쓴 이 확인 (8) wpposts.author->wp_users.ID; (9)wp_users.ID->wp_usermeta.user_id
문장 평론 정보
데이터 시트: wpcomments、wp_posts、wp_users、wp_usermeta 관련 관계: 1. 댓 글 을 확인 하 는 글 (1) wpcomments.comment_post_id->wp_posts. ID 2. 댓 글 작성 자 확인 (2) wpcomments.comment_author->wp_users.ID(3)wp_users.ID->wp_usermeta.user_id
기본 설정 정보
데이터 시트: wpoptions 는 관련 이 없습니다.
Wp - config. php 에서 데이터베이스 에 대한 설정 입 니 다.
array(
array(
'db_host' => SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,
'db_user'=> SAE_MYSQL_USER,
'db_password'=> SAE_MYSQL_PASS,
'db_name'=> SAE_MYSQL_DB,
'db_charset'=> 'utf8'
)
),
'read'=> array(
array(
'db_host' => SAE_MYSQL_HOST_S.':'.SAE_MYSQL_PORT,
'db_user'=> SAE_MYSQL_USER,
'db_password'=> SAE_MYSQL_PASS,
'db_name'=> SAE_MYSQL_DB,
'db_charset'=> 'utf8'
)
),
);
$global_db_list = $db_list['write'];
/**#@+
* 。
*
*
* {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org },
* cookie , 。
*
* @since 2.6.0
*/
define('AUTH_KEY', hash_hmac('sha1', SAE_ACCESSKEY . 'AUTH_KEY', SAE_SECRETKEY ));
define('SECURE_AUTH_KEY', hash_hmac('sha1', SAE_ACCESSKEY . 'SECURE_AUTH_KEY', SAE_SECRETKEY ));
define('LOGGED_IN_KEY', hash_hmac('sha1', SAE_ACCESSKEY . 'LOGGED_IN_KEY', SAE_SECRETKEY ));
define('NONCE_KEY', hash_hmac('sha1', SAE_ACCESSKEY . 'NONCE_KEY', SAE_SECRETKEY ));
define('AUTH_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'AUTH_SALT', SAE_SECRETKEY ));
define('SECURE_AUTH_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'SECURE_AUTH_SALT', SAE_SECRETKEY ));
define('LOGGED_IN_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'LOGGED_IN_SALT', SAE_SECRETKEY ));
define('NONCE_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'NONCE_SALT', SAE_SECRETKEY ));
/**#@-*/
/**
* WordPress 。
*
* WordPress , WordPress 。
* 、 。
*/
$table_prefix = 'wp_';
/**
* WordPress , 。
*
* WordPress 。
* wp-content/languages .mo 。
* WordPress , zh_CN。
*/
define ('WPLANG', 'zh_CN');
/**
* :WordPress 。
*
* “true”,WordPress 。
* 。
*/
define('WP_DEBUG', false);
/* ! 。 。 */
/** WordPress 。 */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** WordPress 。 , */
require_once(ABSPATH . 'wp-settings.php');
wp - db. php 는 wpdb 클래스 를 포함 하고 데이터베이스 조작 API 입 니 다.$wpdb 의 전역 변 수 를 만 듭 니 다. wpdb 클래스 의 대상 입 니 다.매우 길 어서 문장 에 붙 이 는 것 은 너무 비대 하 다.
참고:
http://wenku.baidu.com/view/6448da5bbe23482fb4da4c94.html?from_page=view&from_mod=download
http://codex.wordpress.org/Database_Description
http://codex.wordpress.org/Function_Reference/wpdb_Class
http://www.jakc.net/post/272