انواع رابطه

  • یک‌به‌یک: مثلاً کاربر و پروفایل
  • یک‌به‌چند: دسته و مقالات
  • چند‌به‌چند: پست و برچسب (با جدول واسط)
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 برای پشتیبانی کامل یونیکد (فارسی، ایموجی) استفاده کنید.