Я работаю над дизайном со следующими объектами на C # и Microsoft SQL Server для моего школьного проекта
Таблица пользователей - таблица пользователей, в которой хранится информация о пользователях
Таблица продуктов - Таблица продуктов, в которой хранится информация о продуктах
Таблица избранного - таблица избранного продукта пользователя, отображающая идентификаторы пользователя и productId для избранного
Пользователь предпочитает товар
PUT - / users / {userId} / products / {productId} / избранное
Проверяет, существуют ли userId и productId, и вставляет запись в таблицу Избранное с userId и productId
Пользователь выбрал товар
УДАЛИТЬ - / users / {userId} / products / {productId} / избранное
Проверяет, существуют ли userId и productId, и удаляет существующую запись (userId, productId) из таблицы Избранного
Список всех любимых продуктов для пользователя
GET - / users / {userId} / favourites - возвращает список productIds
Я думаю о способах обработки следующего варианта использования для Список всех любимых продуктов для пользователя
1) Если продукт удален, каким образом можно удалить данные из таблицы избранного.
Я думаю о следующих путях
- Удалить записи (userId, productId) из таблицы избранного, а также при удалении продукта.
- Во время вызова GET для получения всех любимых продуктов для пользователя я перебираю каждый productId, чтобы проверить, существует ли продукт
Какой из этих двух подходов лучше или я что-то здесь упускаю