Я знаю, что это, возможно, было задано довольно много раз, однако я не могу найти подходящего решения для моей проблемы. Я реализую базу данных, где у меня есть пользователи и статьи. Теперь статья может понравиться или понравиться любому пользователю. И вот проблема: мне нужно вернуть json, который содержит список всех статей, расширенных двумя полями, любимыми и любимыми, потому что запросы будут подключены к пользователям. Так любил и любил, может быть, правда или ложь. Я подумал о создании двух разных таблиц Понравился & Любимый, где бы я сохранил article_id - user_id, и если эта запись существует, это означает, что пользователь любил/любил определенную статью. Однако я не совсем уверен, правильно ли это, или я не знаю, как мне построить такой запрос. Если это важно, я использую postgresql вместе с ormlite. Спасибо за любые идеи.Дизайн базы данных для подобных/любовных отношений
ответ
Если я понимаю ваш вопрос, вы в основном описываете отношения M-N. Пользователь любит/любит N статей, а статья нравится/нравится пользователям M. Такие отношения реализуются через третью таблицу, в которой хранятся ассоциации пользователей и статей.
Вы можете создать таблицу UserPreferences, которая связывает user_id и article_id и содержит дополнительные столбцы, чтобы указать, понравился ли он/любил статью.
Я не могу рассказать вам больше о схеме, так как я не знаю, есть ли у вас другие степени о предпочтениях (ненавидящие, равнодушные, запутанные и т. Д.)
Итак, вы в основном говорите, что я мог бы это сделать, третья таблица, где у меня есть article_id - user_id - понравился - любимый, а затем, когда я прошу, я должен присоединиться к этим отношениям. Это имеет смысл :) спасибо за эту идею – user3274539
- 1. дизайн таблицы базы данных и сложность отношений
- 2. 1-M Дизайн базы данных отношений
- 3. Дизайн базы данных отношений (с использованием MySQL)
- 4. Дизайн базы данных - сомнение в сопоставлении отношений
- 5. Дизайн базы данных для отношений один к одному
- 6. Дизайн базы данных: Mysql или MongoDb/OrientDb для сопоставления отношений?
- 7. Многие для многих дизайн базы данных
- 8. Дизайн базы данных для фильтрации базы данных
- 9. Дизайн/отношения базы данных
- 10. Дизайн классов для отношений
- 11. Дизайн базы данных (DDL)
- 12. Проектирование базы данных для отношений
- 13. Дизайн базы данных для приложения для стоматолога
- 14. Дизайн базы данных простой базы данных для функциональной школы
- 15. Дизайн базы данных: рекурсивный Многие из многих отношений
- 16. Дизайн базы данных - Следует ли избегать отношений «один-к-одному»?
- 17. Дизайн условных отношений
- 18. Дизайн отношений классов
- 19. Дизайн базы данных для системы отслеживания учащихся
- 20. MySQL простой дизайн базы данных для академии
- 21. Дизайн базы данных для голосования
- 22. дизайн базы данных для пользователей
- 23. Дизайн базы данных для футбола
- 24. Дизайн базы данных для изображений
- 25. Дизайн базы данных для музыки
- 26. Дизайн базы данных для адресов
- 27. Дизайн базы данных для анкеты
- 28. Дизайн базы данных для генериков
- 29. дизайн базы данных для кинофильмов
- 30. Дизайн базы данных для эффективности
Возможно ли, чтобы эта же статья понравилась и любима одним и тем же пользователем? –
Да, возможно – user3274539
Хорошо, тогда вам понадобится соединительная таблица с двумя флагами: одна для «как» для «любви» (и ПРОВЕРКА, чтобы хотя бы один из них был не-NULL). По сути то же самое уже было предложено @Cratylus. –