powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Правильно наложить индекс на простую таблицу
2 сообщений из 2, страница 1 из 1
Правильно наложить индекс на простую таблицу
    #40039862
ogienko_ev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, дайте совет.

Нужно хранить лайки к постам в блоге.
Почитав статьи, пришел к выводу, что изобретать велосипед не нужно. Поэтому решил организовать хранение в виде отдельной таблицы likes (многие ко многим - пользователь/пост):

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE public.likes
(
    story_id bigint NOT NULL,
    user_id bigint NOT NULL,
    date timestamp without time zone NOT NULL,
    CONSTRAINT likes_stories_id_fk FOREIGN KEY (story_id)
        REFERENCES public.stories (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE CASCADE,
    CONSTRAINT likes_users_id_fk FOREIGN KEY (user_id)
        REFERENCES public.users (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE CASCADE
)



Чаще всего будет использоваться следующий запрос на бэке:

Код: sql
1.
2.
3.
SELECT COUNT(*)
FROM public.likes
WHERE story_id  = {ID}



В SQL я не силен, поэтому возникают вопросы:
1) Нужно ли делать PK в виде отдельного поля id ?
2) Нужно ли делать составной PK ( story_id , user_id )?
3) Нужен ли уникальный индекс на story_id , user_id ?
4) Какой нужен индекс и на какое/какие поля его накладывать, если в условии выборки участвует только story_id ?
...
Рейтинг: 0 / 0
Правильно наложить индекс на простую таблицу
    #40039893
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ogienko_ev
1) Нужно ли делать PK в виде отдельного поля id ?
2) Нужно ли делать составной PK ( story_id , user_id )?
3) Нужен ли уникальный индекс на story_id , user_id ?
4) Какой нужен индекс и на какое/какие поля его накладывать, если в условии выборки участвует только story_id ?

1
не
2
да
3
он создастся автоматически при создании ПК
4
никакой
индекса при ПК (только { story_id , user_id }, а не { user_id , story_id } !) хватит
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Правильно наложить индекс на простую таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]