Я бы порекомендовал
- Общая таблица сообщений с полем типа сообщения.
- Таблица типов сообщений
- Специальные таблицы для отдельных типов сообщений.
Таким образом, для полей, которые применяются ко всем типам сообщений, они хранятся в общей таблице сообщений.
Затем вы можете использовать идентификатор типа записи, чтобы найти дополнительные поля и извлечь данные для этих полей на основе идентификатора типа записи.
Так что ваша общая таблица сообщений будет выглядеть как
| id | название | author_id | текст |
Вы публикуете таблицу типов:
| id | post_type | <- post_type - это строка </p>
И скажем, у вас есть тип поста "календарь", которому нужно поле даты. Мы назовем это типом фотографии. Таблица будет называться «calendar_post_fields», а тип записи будет «календарь».
| id | post_id | дата |