2016-02-22 8 views
0

Я работаю над алгоритмом доставки товаров пользователю, где пользователь будет голосовать за каждый представленный им элемент. Я ищу, чтобы предоставить пользователю элементы, которые были недавно отправлены в базу данных, которые этот пользователь еще не голосовал. Идея состоит в том, чтобы представить одно и то же сообщение как можно большему числу разных пользователей, но я хочу убедиться, что один пользователь никогда не получает одну и ту же запись дважды (поэтому они не могут голосовать на одной и той же записи, дважды искажая результаты). Я загружу первые 20 элементов, которые наш алгоритм найдет и обновит список, когда пользователь получит до 5 элементов.Как хранить голоса на одного пользователя

Все предметы, представленные пользователю, будут голосовать «да» или «нет».

Я знаю, что могу просто хранить массив сообщений, на которых пользователь голосует, но для меня это похоже на то, что он может быть тяжелым и тяжелым вычислением после того, как пользователь некоторое время использует приложение. Я ищу предложения о том, как справиться с этой проблемой. Любые идеи были бы замечательными, может помочь исправить идею. Если вы хотите получить дополнительную информацию, просто сообщите мне, я был бы рад предоставить ее. Благодаря!

ответ

0

Предполагая, что ваши почтовые идентификаторы имеют какой-то последовательно с ними (и что пользователь голосов по каждой должности в порядке), вы должны только хранить идентификатор сообщения, который был наиболее недавно добавленный. Таким образом, вы можете загрузить следующие 20 почтовых идентификаторов. Если пользователь может голосовать на посты из строя, вы можете сохранить разделы сообщений, на которые они проголосовали. (например, пользователь1 проголосовал на должностях 3,4,5,6,9,10, поэтому вы храните номера пар 3,6 и 9,10, указав, что все должности между тысячами ИД были проголосованы, тем самым уменьшив количество пространства, которое вы используете .)

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

+0

Спасибо за идею. Я думаю, что что-то вроде этого будет работать отлично! – MrOneDouble

0

это база данных. магазин список

votes 
------- 
post_id 
User_id 
vote 
vote_time