انواع رابطه
- یکبهیک: مثلاً کاربر و پروفایل
- یکبهچند: دسته و مقالات
- چندبهچند: پست و برچسب (با جدول واسط)
CREATE TABLE post_tag (
post_id INT UNSIGNED NOT NULL,
tag_id INT UNSIGNED NOT NULL,
PRIMARY KEY (post_id, tag_id),
FOREIGN KEY (post_id) REFERENCES posts(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
ایندکسگذاری
CREATE INDEX idx_status_pub ON posts (status, published_at);
نکات
- ایندکس سرعت خواندن را بالا و سرعت نوشتن را کمی پایین میآورد.
- ترتیب ستونها در ایندکس مرکب مهم است.
- با
EXPLAIN کوئریهای کند را تحلیل کنید.
- از
utf8mb4 برای پشتیبانی کامل یونیکد (فارسی، ایموجی) استفاده کنید.