#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