Как настроить разные типы сообщений в базе данных

#database #database-design

#База данных #database-design

Вопрос:

Я создаю ленту для новостного приложения.

Я могу сделать одно сообщение, содержащее 2 карточки. Есть карточка с изображением и есть карточка с текстом. Я, как пользователь, могу создать сообщение из двух карточек в любом порядке, который я хочу. После того, как я создам сообщение, другие пользователи смогут увидеть мое сообщение, содержащее две карточки в том порядке, в котором я их разместил.

Как мне настроить это в базе данных? Вот что у меня есть на данный момент.

введите описание изображения здесь Пользователь может создавать много сообщений, но какие отношения я должен установить, чтобы показать, что сообщение содержит 2 объекта в определенном порядке (кстати, в реальном приложении существует более 2 типов сообщений). Сообщение может быть в любой комбинации. Он может содержать либо 2 текста, либо 2 изображения, либо изображение и текст, либо комбинации текста и изображения.

Ответ №1:

Вам понадобится новая таблица с именем post_items — в ней будет 4 столбца:

 POST_ID - foreign key into table POST
ITEM_TYPE_ID - ENUM, determining which table the column ITEM_ID is foreign key into
ITEM_ID - foreign key into either TextPost, ImagePost or any other desired table
ITEM_ORDER - defines the order of the item inside the post