Проектирование БД

203
15 марта 2017, 17:34

Я делаю систему которая включает ленту объявлений. Пользователь подписывается на несколько категорий. Затем ему выдается лента новостей со всех категорий на которые он подписан: Я описал для этого такую архитектуру:

Но понимаю что получить "Ленту" я сначала должен получить список всех категорий на которые подписан пользователь, а только потом запрашивать данные из таблицы Посты.

Вообще насколько это правильное решение? Может как-то можно построить архитектуру, чтобы получать ленту одним запросом?

Answer 1

Одним запросом

SELECT p.* FROM Posts p
INNER JOIN Subscriptions s ON s.category_id = p.category_id
-- также join images img on img.post_id = p.id но тут группировать придётся
WHERE s.user_id = :user_id

Нормальная у вас архитектура, каждая сущность - своя таблица.
Ничего лишнего, все связи на месте.

READ ALSO
Помогите разобраться со ссылка в Java

Помогите разобраться со ссылка в Java

Помогите, пожалуйста разобраться с ссылками в java

253
Частота обращений к VK API

Частота обращений к VK API

Обращаюсь к VK API раз в секунду (Threadsleep(1000)), пишу несколько сообщений подряд боту (быстро), и получаю эксепшн: ApiTooManyException: Too many requests per second (6): Too many requests...

801
В чем разница между Comparable и Comparator?

В чем разница между Comparable и Comparator?

Получается, это дублирующие друг друга вещиМожет, есть какие-то реальные различия?

405
Как прочитать файл txt на java

Как прочитать файл txt на java

Есть однострочный txt файл

313