Как извлечь RANDOM и UNIQUE запись из SQL через LINQ - PullRequest
2 голосов
/ 23 апреля 2010

Хорошо, я нашел много публикаций на SO о том, как извлечь случайный элемент из базы данных при использовании LINQ. Кажется, есть несколько различных способов справиться с этим. Что мне нужно сделать, так это извлечь элемент RANDOM из базы данных, который пользователь раньше не видел.

Данные, которые я извлекаю из базы данных, очень малы. Можно ли как-то просто нажать один раз на базу данных на 1000 записей, а затем случайным образом прокрутить их?

Должен ли я поместить в систему пользователей файл cookie, записывающий идентификаторы того, какие элементы они видели, выбрать случайную запись, проверить, не было ли это видно, и если да, снова извлечь из базы данных? Кажется, проблемы с производительностью просто ожидают.

Я не ожидаю, что кто-то закодирует это для меня, я просто ищу концепции и указываю в правильном направлении, как мне поступить в этом направлении.

Нужно больше деталей? Просто дай мне знать!

1 Ответ

1 голос
/ 23 апреля 2010

Обычный ответ на этот вопрос - создать произвольно упорядоченный список и прокрутить его линейно. Так что вы бы потянули

a, b, c, d, e, f

пересортируйте его с помощью алгоритма рандомизации до

b, e, f, a, c, d

, а затем просто совершите линейную прогулку.

...