Найти наиболее часто используемые товары / предметы определенного пользователя

Я занимаюсь разработкой веб-API для корпоративного приложения. В текущем сценарии, когда какой-либо пользователь щелкает любой выпадающий элемент управления, на сервер отправляется запрос, теперь код ADO.Net просто выбирает список из соответствующей таблицы в алфавитном порядке, и ответ возвращается в виде JSON. Это довольно просто.

Теперь я хочу вернуть наиболее часто используемые элементы конкретным пользователем в моем ответе. Например, у меня есть выпадающий список для всех товаров компании. Теперь пользователь A в основном использует элемент 1, элемент 2, элемент 3, а пользователь B в основном использует элемент 4, элемент 5, элемент 6. Теперь вместо того, чтобы каждый раз возвращать постоянный список в алфавитном порядке, я хочу вернуть список пользователю A в котором пункт 1, пункт 2, пункт 3 должен быть сверху, в то время как для пользователя B пункт 4, пункт 5, пункт 6 должен быть сверху.

Я искал его и узнал, что я могу делать такие вещи с помощью алгоритмов машинного обучения. Я совершенно не знаю из этого домена. Я нашел AFORGE.NET и Accord.NET как несколько хороших платформ для.NET, но мне все еще неясно, как я могу это сделать?

Пожалуйста, кто-нибудь направит меня, как я могу этого достичь?

С уважением

1 ответ

Решение

Я считаю, что Саеб прав. Вы можете изменить свою БД, чтобы иметь отношение многие ко многим между Пользователями и Продуктами. Таблица Users_And_Products должна хранить счетчик для любого просмотренного элемента:

UserID ProductID Count
001    123       1      
001    010       4
002    123       5
002    050       4
002    051       3

Как вы можете видеть, вам не нужно хранить счетчик для Товаров, которые были просмотрены ноль раз, а просто отслеживать те, которые были просмотрены вообще. Это тогда становится тривиальным запросом SQL (where UserID='001' orderby Count desc).

Другие вопросы по тегам