На моем сайте есть Пользователи.Мой сайт имеет товары.Пользователи могут оставить отзыв о товаре.Пользователи могут оставить рейтинг предмета.Когда пользователи оценивают Предмет, они оценивают его в разных категориях: оценка качества сборки, оценка полезности, оценка эстетической привлекательности.
Итак, в моей базе данных в моей таблице «Обзоры» будет одна запись, а в моей таблице «Рейтинги» будет по три записи на элемент на пользователя.
Теперь на моей странице элементов я хочу отобразить десять наиболеенедавние обзоры и рейтинги.
Как я могу получить обзоры и соответствующие рейтинги и отправить их все в представление для отображения?
(я использую LINQ to SQL).
Спасибо.
РЕДАКТИРОВАТЬ: Извините, думал, что я включил достаточно информации.Вот еще немного информации о моей базе данных.Допустим, на моем сайте есть элементы разных видов.Допустим, он содержит информацию об автомобилях и книгах.Очевидно, что при оценке автомобиля у вас есть другие критерии, чем при оценке книги.
Я помещаю все свои оценки в одну таблицу рейтингов.
У меня есть таблица RatingsCategories.Он содержит два столбца:
RatingCategoryID (Identity column)
RatingCategory (name of category)
Категория «Обложка» будет применяться к книгам.Категория «Производительность» будет применяться к автомобилям.
У меня есть таблица рейтингов.Он содержит следующие столбцы:
RatingID (Identity column)
EntityID (Unique identifier among Cars AND Books)
UserID (Identifier of the user who left the rating)
RatingCategoryID (Reference to the category; FK from the RatingsCategories table)
Rating (int; the rating given)
DateModified (DateTime)
Итак, эта таблица может содержать все рейтинги книг и автомобилей.Одна книга может иметь три разных рейтинга на пользователя (обложка, контент, качество переплета и т. Д.), А одна машина может иметь три разных оценки на пользователя (внешний вид, производительность, простота обслуживания и т. Д.)
Аналогично моему отзывуТаблица может содержать отзывы о книгах и автомобилях.Это выглядит так:
ReviewID (Identity column)
EntityID (Unique identifier among Cars AND Books)
UserID (Identifier of the user who left the rating)
Body (Text of review)
DateModified (DateTime)
Пользователь может оценивать и просматривать каждый элемент один раз.Поэтому, если посетитель сайта переходит на страницу книги, я хочу отобразить последние 10 обзоров и соответствующие рейтинги.Это означает, что мне нужно взять 10 самых последних записей Обзора для этой Книги.Мне также нужно получить десять самых последних полных рейтингов для этой книги (с тем же EntityID и тем же UserID, что и у обзоров), которые могут составлять три записи для каждого рейтинга.
Имеет ли это смысл?
Какой лучший способ сделать это?
Я схожу с ума от этого подхода и схемы базы данных?
Спасибо за ваше терпение.