Дизайн таблицы SQL для пользователей, которые могут оставлять отзывы для пользователей - PullRequest
1 голос
/ 10 октября 2019

Я разрабатываю веб-сайт, на котором пользователи могут публиковать определенные вещи, а другие пользователи могут делать ставки на него. Таким образом, после того, как все решено, они могут оставить отзыв друг другу, что позволяет назвать это «работой». В таблице обратной связи я думаю, что мне нужно иметь 2 Userids, один человек, который оставил отзыв, и один человек, который получил отзыв. Когда пользователь оставляет отзыв, имеет больше смысла создавать FK на UserId получателя, потому что эти отзывы будут просматриваться на странице профиля получателя.

Или, может быть, я ошибся в этом подходе?

enter image description here

1 Ответ

1 голос
/ 10 октября 2019

В таблице отзывов я думаю, что мне нужно иметь 2 идентификатора пользователя, один из которых оставил отзыв, и один человек, который получил отзыв

Отзыв связан с двумя пользователями: aотправитель (который оставляет обратную связь) и получатель. Чтобы представить это отношение, вам нужно иметь два внешних ключа в таблице Feedbacks, которые ссылаются на таблицу Users. Таким образом, вы можете обеспечить целостность таблиц (и убедиться, что каждый отправитель и получатель является действительным пользователем). Каждый отзыв также связан с продуктом, но кажется, что вы уже имеете в виду эти отношения.

Итак:

Feedbacks
    ReceiverId        foreign key to Users(UserId)
    SenderId          foreign key to Users(UserId)
    ProductId         foreign key to Products(ProductId) 
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...