Đâm, đục, phá database wordpress xem có gì vui ?

16/04/2019 Wordpress 10402 lượt xem
Lưu bài viết

Như các bạn cũng đã biết wordpress được viết bằng php với cơ sở dữ liệu là mysql. Chúng ta thường đi tìm hiểu sâu về phẩn code của wordpress như lập trình theme wordpress, lập trình plugin... Hoặc một số phần tùy biến custom field, custom post type... Mà không quan tâm nhiều đến phần thiết kế cơ sở dữ liệu database của wordpress.

Để hiểu trõ hơn về database wordpress được thiết kế như thế nào, gồm có những table nào, chức năng của từng table, cũng như cách để can thiệp, tùy biến database wordpress... Hôm nay mình sẽ giới thiệu cho các bạn cấu trúc database wordpress.

Cấu trúc database wordpress:

Ở thời điểm mình viết bài này wordpress đang có phiên bản mới nhất là 5.1.1. Cấu trúc database wordpress gồm có 12 bảng như hình bên dưới!

p/s: Đối với mutil site thì cấu trúc database sẽ khác nhé. Đây là cấu trúc của một site wordpress thông thường!

database wordpress

Sau đây là chức năng tương ứng của từng bảng trong database wordpesss:

Mình sẽ sắp xếp theo thứ tự quan trọng đối với yêu cầu chức năng của từng bảng nhé! (ý kiến của mình)

wp_posts:

Bảng này chưa toàn bộ bài viết của posts, pages cũng như các custom post type. Lưu ý hình ảnh up lên media của wordpress cũng được lưu ở bảng này. Mỗi ảnh tương ứng với mỗi trường nhé!. Một số hàm hay dùng để tương tác với bảng này là:

wp_postmeta:

Bảng này lưu các trường mở rộng (meta) của bảng wp_posts. Đây là lưu các custom field của post. Các thông tin của hình ảnh cũng được luư ở bảng này như các kích thước crop... bảng này liên kết với bảng wp_posts. (Một post sẽ có nhiều post_meta). Bảng này là một trong như bảng bị phìn to khi dữ liệu website nhiều lên. Một số hàm để tương tác với dữ liệu của bảng này là:

wp_terms:

Bảng này lưu tất cả các taxonomy như là category, tag, các custom taxonomy. Một số hàm tương tác với bảng này là:

wp_term_taxonomy:

Ở bảng wp_terms phía trên các bạn sẽ thấy, tất cả các chuyên mục cũng như từ khóa đều được lưu chung ở bảng đó. Vậy làm sao để phân biệt được đâu là chuyên mục, đâu là từ khóa? Vì vậy bảng wp_term_taxonomy được sinh ra để giải quyết vấn đề đó.

wp_termmeta:

Bảng này chứa các trường mở rộng của bảng wp_terms, Cũng giống như post_meta bảng này cũng được lưu dưới dạng key và value. Một số hàm dùng để tương tác với bảng này là:

wp_term_relationships:

Trong wordpress một bài viết có thể thuộc nhiều chuyên mục và một chuyên mục cũng có thể chứa nhiều bài viết. Mà chuyên mục ở đây là wp_terms còn bài viết ở đây là wp_posts. Dễ dàng nhận thấy 2 bảng đó quan hệ (nhiều nhiều) với nhau. Vì thế bảng wp_term_relationships là bảng trung gian giữa 2 bảng này.

Một số hàm tương tác với dữ liệu bảng này là:

wp_users:

Bảng này chứa danh sách thành viên của website. Tất cả user đều được lưa bảng này ko kể level cao thấp. Một số hàm để tương tác với dữ liệu bảng này là:

Một số hàm hay dùng liên quan đến user như:

wp_usermeta:

Bảng này chứa phần mở rộng của bảng wp_users. Dữ liệu của thông thành viên website chỉ gói gọn trong bảng wp_user. Ví dụ muốn thêm một số thông tin cho user ví dụ như: Địa chỉ, số điện thoại... thì chúng tả phải dùng bàng wp_usermeta để lưu chúng ở đó. Một số hàm để tương tác với bảng wp_usermeta là:

wp_comments:

Bảng này chứa tất cả các bình luận của khách comment vào wesbite bạn. Một số hàm tương tác với dữ liệu webiste này là:

wp_commentmeta:

Tương tự như những bảng meta khác. Bảng commentmeta là bảng mở trộng của wp_comments. Một số hàm tương tác với dữ liệu bảng wp_commentmeta

wp_options:

Bảng này chứa các thông tin của webiste như: Tiêu đè, mô tả, site url, đường dẫn theme, múi giờ...Các cài đặt cùa webiste. Bảng này thường được tận dụng để làm theme options. Một số hàm dùng để tương tác với dữ liệu của bàng này là:

wp_links:

Bảng cuối cùng :)) Mừng quá. Nói thật bảng này mình không biết nó sinh ra để làm nhiệm vụ gì luôn :)). Với viết tới đây buồn ngủ quá :(. Vậy bạn nào biết công dụng của bảng đó thì comment cho mình biết với nha!

Tóm lại:

Bài viết hôm này mình đã giới thiệu cho các bạn biết cấu trúc của database wordpress. Nhìn chung nếu các bạn bỏ thời gian ra ngâm cứu một tí sẽ thấy nó khá dễ. Chủ yếu là hệ thống các bảng chính đi kèm với nó là các bảng phụ (meta). Với cách thiết kế như thế này sẽ giúp cho website dễ dàng tùy biến thêm trường.

Nếu các bạn tìm hiểu sâu wordpress thì database của nó chắc chắn các bạn phải nắm để dễ dàng tùy chỉnh. Bài viết hôm nay khá dài nên mình sẽ chỉ giới thiệu tới đây. Bài viết sau mình sẽ hướng dẫn cho các bạn tạo thêm một bảng mới vào database wordpress và cũng như cách get, thêm, sửa, xóa dữ liệu trong database wordpress.

Chúc các bạn học wordpress thành công! Chào thân ái và quyết thắng!