У меня есть веб-сайт, который показывает информацию о доступных лекциях. Каждая лекция имеет название, ассоциированный динамик и (потенциально) несколько категорий. Схема базы данных выглядит что-то вроде этого (предупреждение: это воздух-код, так как у меня нет базы данных перед мной) ...Как найти связанные лекции?
create table Lectures (
ID int not null identity(1,1) primary key,
Title varchar(max) not null default '',
SpeakerID int not null foreign key references Speakers(ID)
)
create table Categories (
ID int not null identity(1,1) primary key,
Name varchar(max) not null default ''
)
create table Lectures_Categories (
ID int not null identity(1,1) primary key,
LectureID int not null foreign key references Lectures(ID),
CategoryID int not null foreign key references Categories(ID)
)
При просмотре сведений о лекции, я хотел бы быть в состоянии рекомендовать связанные лекции, но я не уверен, как это кодировать. Моя первая мысль о том, что следующие критерии будут использоваться для расчета релевантности (наиболее важной первой) ...
- Общих категорий - то есть несколько категорий, разделяемых две лекции, тем более вероятно, что они должны быть связаны
- Сходство по названию - т.е. чем больше слов разделяют две лекции, тем больше вероятность того, что они будут связаны.
- же динамик
Если две лекций были одинаково ранжированы в соответствии с указанными выше критериями, я хотел бы ранжировать более новые выше старых.
Кто-нибудь знает, как я буду кодировать это? Я делаю это на C#, используя модель Entity Framework против базы данных SQL Server, если это имеет значение.
Просто шпионить за пользователями, что они делают (как это делает Windows 10). Храните статистику и показывайте лекции, которые пользователи посещают вскоре после посещения конкретного (как это делает амазон). С некоторой фильтрацией они связаны *. – Sinatr
@Sinatr Спасибо, но это, вероятно, не сработает, так как пользователи, вероятно, будут слушать лекцию, так будет на веб-странице в течение часа или около того. Они могут вернуться позже, но у них не будет большой истории непрерывного просмотра. Я ищу больше для того, чтобы найти связанные лекции, основываясь только на том, что находится в базе данных. –
Я думаю, что одним из способов является то, что вы правильно классифицируете курсы в своей базе данных (неопределенные, например: биология, зоология, теоретическая физика, прикладная физика и т. Д. Каталоги), тогда, если курс под категорией находится в игре, вы можете вытащить другие курсы в этой категории. Также вы можете указать ссылку для динамика, если пользователь нажимает, а затем вытаскивает все лекции, предоставленные им. Разве это не начало ослаблять ваш мыслительный процесс? –