Repository navigation
Завершаем проектировать базу данных - #7
Conversation
NaumovEvgeniy
left a comment
There was a problem hiding this comment.
Непонятно почему решил вынести рейтинг в отдельную сущность. Я бы оставил его в CommentEntity. Это гораздо проще поддерживать.
Еще, ты не правильно понял смысл избранного. Флаг избранного должен привязываться к офферу и пользователю. Сейчас флаг избранного находится в моделе OfferEntity и это не верно. Если ты у оффера выставишь isFavorite: true, то это предложение будет избранное для всех пользователей, а это не верно.
Нужно сделать отдельную модель для избранного. В ней будет храниться связь пользователя и предложения.
| userId | offerId |
|---|---|
| u1 | o1 |
| u1 | o2 |
| u2 | o2 |
Пример этой таблицы. Тут у пользователя u1 добавлено в избранное 2 оффера (o1 и o2), а у пользователя u2 только одно предложение в избранном. А у остальных пользователей в избранном ничего нет
| createUserContainer(appContainer); | ||
| createOfferContainer(appContainer); | ||
| createCommentContainer(appContainer); | ||
| createOfferRatingContainer(appContainer); |
There was a problem hiding this comment.
не нужно (смотир комментарии ниже)
There was a problem hiding this comment.
Если хранить рейтинг в CommentEntity в этой дто уже нет необходимости
| @@ -1,6 +1,5 @@ | |||
| export class CreateCommentDto { | |||
| public text!: string; | |||
| public rating!: number; | |||
|
|
||
| public async create(dto: CreateCommentDto): Promise<DocumentType<CommentEntity>> { | ||
| const result = await this.commentModule.create(dto); | ||
| const result = await this.commentModel.create({...dto, datePublished: new Date()}); |
There was a problem hiding this comment.
я бы добавил перерасчет рейтинга сюда, когда добавляется комментарий
NaumovEvgeniy
left a comment
There was a problem hiding this comment.
Добавил пару комментов. Не думаю что ради них следует отправить на доработку.
| public isPremium!: boolean; | ||
| public isFavorite!: boolean; | ||
| public rating!: number; | ||
| public rating?: number; |
There was a problem hiding this comment.
нужно убрать, тк он расчитывается автоматически
| public isPremium!: boolean; | ||
| public isFavorite!: boolean; | ||
| public rating!: number; | ||
| public rating?: number; |
There was a problem hiding this comment.
нужно убрать, тк он расчитывается автоматически
🎓 Завершаем проектировать базу данных