ساختار دیتابیس وردپرس یکی از موارد حیاتی در توسعه وبسایتها و برنامههای مبتنی بر این سیستم مدیریت محتوا است. دیتابیس وردپرس اطلاعات مربوط به مطالب، کاربران، تنظیمات و اجزای دیگر وبسایت را ذخیره و مدیریت می کند. در این مقاله، به بررسی ساختار دیتابیس و ارتباط جداول در وردپرس خواهیم پرداخت و نحوه بهینهسازی آنها را توضیح خواهیم داد.
مفاهیم پایه در دیتابیس وردپرس
در وردپرس، از سیستم مدیریت پایگاه داده MySQL برای ذخیره و مدیریت اطلاعات استفاده میشود. دیتابیس وردپرس شامل جداولی است که ارتباطات و اطلاعات مختلف را در وبسایت ذخیره میکنند. برای درک بهتر ساختار دیتابیس وردپرس، باید با مفاهیم پایهای از دیتابیسها و جداول آشنا شویم.
۱. دیتابیس: دیتابیس به مجموعهای از جداول و روابط بین آنها اطلاق میگردد که اطلاعات را ذخیره میکنند. در وردپرس، دیتابیس اصلی محتوا، کاربران، تنظیمات و اطلاعات مربوط به پلاگینها و پوستهها را در بر میگیرد.
۲. جدول: جدولها در دیتابیس وردپرس برای ذخیره اطلاعات استفاده میشوند. هر جدول شامل ستونها و ردیفها است. در وردپرس، هر جدول وظایف مختلفی را انجام میدهد. به عنوان مثال، جدول “wp_posts” برای ذخیره مطالب وبسایت استفاده میشود.
۳. ستون: ستونها درون هر جدول اطلاعات مربوط به یک ویژگی خاص را ذخیره میکنند. به عنوان مثال، ستون “post_title” در جدول “wp_posts” عنوان مطالب را نگه میدارد.
۴. ردیف: ردیفها (یا سطرها) در هر جدول اطلاعات مربوط به یک رکورد خاص را نگه میدارند. به عنوان مثال، هر ردیف در جدول “wp_posts” مربوط به یک مطلب وبسایت است.
ساختار دیتابیس وردپرس
به صورت پیشفرض در وردپرس، جداول دیتابیس با پیشوند “wp_” شناخته می شوند. این پیشوند مطمئن میشود که جداول وردپرس با سایر جداول دیگری که در دیتابیس استفاده میشوند، اشتباه نشوند.
برخی از جداول مهم در دیتابیس وردپرس عبارتند از:
۱. wp_posts: این جدول شامل تمامی مطالب وبسایت است. هر ردیف در این جدول مربوط به یک مطلب خاص است و ستونهای مختلفی را از جمله عنوان، محتوا و تاریخ انتشار شامل میشود.
۲. wp_users: این جدول شامل اطلاعات کاربران وردپرس است. هر کاربر ویژگیهایی مانند نام، نام کاربری و رمز عبور را در این جدول دارد.
۳. wp_comments: این جدول اطلاعات مربوط به نظرات کاربران را دریافت میکند. هر ردیف در این جدول مربوط به یک نظر است و شامل جزئیاتی مانند نام نظر دهنده، متن نظر و تاریخ ارسال است.
روابط جداول در دیتابیس وردپرس
نمودار زیر یک نمای کلی از پایگاه داده وردپرس و روابط بین جداول ایجاد شده در هنگام نصب استاندارد وردپرس ارائه می دهد:
توجه داشته باشید روابط و جداول فوق، موارد پیش فرض وردپرس است که در زمان نصب ایجاد می شوند. در صورتی که افزونه یا کدی در وبسایت اضافه کنید که نیاز به ایجاد تغییرات در دیتابیس داشته باشد ممکن است این روابط تغییر کند. در این مورد افزونه یا کد میبایست طوری طراحی شود که هیچ رکوردی بدون رابطه و یا به اصطلاح یتیم (orphan) نباشد.
نمای کلی دیتابیس وردپرس
در این بخش به بررسی نمای کلی تمام جداول ایجاد شده در هنگام نصب وردپرس خام میپردازیم. به دنبال آن اطلاعات خاصی از آنچه در هر جدول وجود دارد ارائه می شود.
در صورتی که وردپرس خام را به تازگی نصب کرده باشید، دیتابیس شما دارای 12 جدول است:
- wp_posts
- wp_postmeta
- wp_options
- wp_users
- wp_usermeta
- wp_term_taxonomy
- wp_terms
- wp_term_relationships
- wp_links
- wp_comments
- wp_commentmeta
- wp_termmeta
جداول اغلب با یکدیگر مرتبطاند، زیرا ممکن است بخشهای مختلف اطلاعات و دادهها به هم مرتبط باشند.
به عنوان مثال، یک پست وبلاگ ممکن است به دستهها و برچسبها پیوند داده شود. بنابراین، جدول ذخیرهسازی پستهای وبلاگ به جدول مربوط به دستهها و برچسبها مربوط میشود.
در ادامه به بررسی برخی از جداول مهم دیتابیس وردپرس میپردازیم:
wp_posts
جدول wp_post تمام اطلاعات مربوط به محتوای یک وبسایت وردپرس را ذخیره میکند. این موارد شامل پستها، صفحات و ویرایشهای صفحه میشود.
همچنین آیتمهای منوی پیمایش(navigation menu)، فایلهای رسانه(تصاویر و پیوستها) و اطلاعات استفاده شده توسط افزونهها در اینجا ذخیره میشوند.
post_type یک ستون در جدول wp_post است که دادههای فوق را دسته بندی میکند. این مورد به کاربران اجازه میدهد تا به انواع خاصی از دادهها با استفاده از جستجو در پایگاه داده دسترسی داشته باشند. به همین دلیل میتوان post_type را مهمترین ستون جدول wp_post دانست.
در واقع ستون post_type نوع هر سطر را نشان میدهد – یک پست، صفحه، پیوست یا نوع دیگری. این تنوع محتوا به جدول ماهیت انعطاف پذیری میبخشد.
wp_postmeta
هر پست حاوی مجموعهای از دادهها به نام متادیتا (فرا داده) است. این اطلاعات در جدول wp_postmeta ذخیره میشود. همچنین برخی از افزونهها نیز ممکن است دادههای خود را به این جدول اضافه کنند.
wp_postmeta یک جدول مرتبط به جدول wp_post است. در واقع اطلاعات جزئی مربوط به پستها در این جدول ذخیره میشود. این جدول دادهها را با استفاده از ترکیب کلید/مقدار (key/value) ذخیره میکند.
این تکنیکی است که بسیاری از جداول وردپرس از آن استفاده میکنند و هسته وردپرس، افزونهها و تمها را قادر میسازد تا دادههای نامحدود را ذخیره کنند.
wp_options
wp_options یکی از مهم ترین جداول وردپرس است. این جدول تمامی تنظیمات داشبورد وردپرس را ذخیره میکند.
تنظیمات ذخیره شده در اینجا شامل URL، عنوان وبسایت، افزونههای فعال، قالب فعال و موارد دیگر است. اکثر افزونهها نیز تنظیمات خود را در اینجا ذخیره میکنند.
برخلاف سایر جداول، جدول wp_options به هیچ جدول دیگری مربوط نمیشود.
wp_users
این جدول لیستی از تمام کاربران ثبت نام شده در سایت وردپرس شما را به همراه اطلاعات اولیه آنها در اختیار دارد. این اطلاعات شامل نام کاربری، رمز عبور (رمزنگاری شده)، آدرس ایمیل، زمان ثبت نام، نام نمایشی، وضعیت، و کلید فعال سازی (در صورت لزوم) میشود.
wp_usermeta
متادیتا(فراداده) مجموعهای از دادههای اضافی در مورد سایر اطلاعات است. همانطور که اشاره شد، جدول wp_user اطلاعات اولیه کاربران سایت را ذخیره میکند.
جدول wp_usermeta شامل اطلاعات اضافی کاربر که در جدول wp_user ذخیره نشده است میشود. به عنوان مثال این اطلاعات شامل سطح دسترسی کاربران و نقش آنها در وبسایت است.
در دیتابیس وردپرس، جداول با یکدیگر ارتباط برقرار میکنند تا امکان مدیریت و تعامل میان اجزا را فراهم کنند. این روابط از طریق کلیدهای اصلی (Primary Keys) و کلیدهای خارجی (Foreign Keys) برقرار میشوند. در این بخش به برخی از این ارتباطات میپردازیم:
۱. جدول wp_posts و جدول wp_users:
روابط بین این دو جدول به شما امکان میدهد تا نویسنده مطلب (کاربر) را مشخص کنید. جدول wp_posts شامل اطلاعات مربوط به مطالب وبسایت است، در حالی که جدول wp_users شامل اطلاعات کاربران وردپرس است. با استفاده از ستون “post_author” در جدول wp_posts و ستون “ID” در جدول wp_users، میتوانید ارتباط بین نویسنده مطلب و کاربر مربوطه را برقرار کنید.
۲. جدول wp_posts و جدول wp_comments:
ارتباط این دو جدول، نظرات کاربران را در پستهای مختلف ثبت میکند. جدول wp_comments اطلاعات مربوط به نظرات کاربران را دریافت میکند. با استفاده از ستون “comment_post_ID” در جدول wp_comments و ستون “ID” در جدول wp_posts، میتوان نظرات و کامنتهای کاربران را به پست مناسب ارتباط داد.
۳. جدول wp_users و جدول wp_usermeta:
این رابطه برای ذخیره سایر اطلاعات کاربری استفاده میشود. جدول wp_users شامل اطلاعات اصلی کاربران است. با استفاده از جدول wp_usermeta، میتوانید اطلاعات تکمیلی و شخصی سازی شده کاربران را ذخیره کنید. این رابطه با استفاده از ستون “ID” در جدول wp_users و ستون “user_id” در جدول wp_usermeta برقرار میشود. به عنوان مثال نام کاربری، گذرواژه و ایمیل در جدول wp_users و اطلاعاتی مانند سطح دسترسی و نقش کاربر در جدول wp_usermeta ذخیره میگردد.
بهینهسازی ساختار دیتابیس
بهینهسازی ساختار دیتابیس وردپرس میتواند به بهبود سرعت بارگیری و ارتقای رتبه وبسایت در نتایج جستجو کمک کند. در ادامه، تعدادی از راهکارهای بهینهسازی را برای شما شرح میدهیم:
۱. استفاده از افزونههای بهینهسازی دیتابیس: افزونههایی مانند WP-Optimize و WP Rocket قابلیتهای بهینهسازی دیتابیس را فراهم میکنند. با استفاده از این افزونهها، میتوانید جداول دیتابیس را بهینهسازی کنید و در فضای اشغال شده توسط دیتابیس صرفهجویی کنید.
۲. استفاده از نمایهها (Indexes): ایجاد نمایههای مناسب در ستونهایی که بیشترین استفاده را دارند، سرعت عملیات جستجو را افزایش میدهد. جهت ایندکس گذاری دیتابیس می توانید افزونه index-wp-mysql-for-speed را بررسی کنید. البته در نظر داشته باشید قبل از انجام هر تغییری در دیتابیس پیشنهاد میشود نسبت به تهیه بکاپ اقدام کنید. جهت تهیه بکاپ میتوانید مطابق آموزش ذیل موضوع را صورت دهید:
بک آپ گیری در دایرکت ادمین و نحوه بازگردانی نسخه پشتیبان در دایرکت ادمین
۳. حذف دادههای غیرضروری: مرتبسازی و پاکسازی دادههایی که دیگر استفاده نمیشوند، میتواند به بهبود عملکرد دیتابیس کمک کند. مثلاً حذف نظرات اسپم و مطالبی که دیگر منتشر نشدهاند، میتواند فضای اضافی را در دیتابیس کاهش دهد.
نتیجهگیری
در این مقاله، به بررسی ساختار دیتابیس و ارتباط جداول در وردپرس پرداختیم. ساختار دیتابیس وردپرس شامل جداولی است که اطلاعات مربوط به مطالب، کاربران، نظرات و اجزای دیگر وبسایت را ذخیره میکنند. همچنین، بهینهسازی ساختار دیتابیس میتواند به بهبود عملکرد وبسایت و رتبهبندی آن در نتایج جستجو کمک کند. با رعایت راهکارهای بهینهسازی مطرح شده و استفاده از افزونههای مرتبط، میتوانید عملکرد دیتابیس وردپرس خود را بهینه و تجربه کاربران را بهبود بخشید.