Является ли сохранение значений ранга в реляционной таблице хорошей идеей? - PullRequest
0 голосов
/ 30 января 2020

Я прочитал несколько вопросов, связанных с этим, но они не отражают точно мой кенарий. У меня есть таблица, в которой есть столбец, представляющий количество просмотров элемента; скажем 1000, 20. Я хочу дать ему рейтинг, основанный на количестве просмотров. Поэтому, когда я сортирую результаты, я хочу отсортировать их по рангу вместо того, чтобы быть слишком математическим и позиционировать элемент над другим только потому, что у него один вид больше другого.

item
id view view_rank (is the view_rank here a bad practice? Why?)
1   1000   3

Я хочу сделать это, потому что, если этого не сделать, мне придется использовать raw sql вместо использования ORM. Также рассмотрите возможность получения 100.000. Использование функции ранга для 100.000 может быть значительным.

1 Ответ

0 голосов
/ 30 января 2020

Я не совсем уверен, что понимаю ваш вопрос - если вы не собираетесь сортировать по представлениям «математически», как бы вы еще сортировали?

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

Если вы хотите сгруппировать записи вместе - например, 0 - 100, 101 - 500, 501 - 10000 - вы можете использовать этот ответ , чтобы увидеть, как это сделать в необработанном SQL; ваша СУБД может также иметь встроенные функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...