User::with('books')->get();
...
'books' :
0:
user_id: 1
book: "Sample book"
...
...
'books' :
0:
id: 1
user_id: 1
book: "Sample book"
...
...
'books' :
0:
user_id: 1
book: "Sample book"
...
про жадную загрузку не знаешь
имеется таблица users:
id(AI Primary key), uid(int), category_id(int), ..., created_at(timestamp)
Необходимо проверить перед добавлением в базу поле uid(int) со значением из запроса, существует ли оно с таким значением или нет и от этого принять решение пропустить или нет эти данные дальше.
Локи в данном случае не работают, так как они заточены под уникальные id. А uid не UNIQUE. И не хотелось бы прибегать к функциям бд для решения этой задачи. Хочется все таки как то программно в коде приложения.
То есть, как вижу это я:
1. Приходит запрос, мы сразу блокируем прием по этому адресу для всех одномоментных запросов, которые могут сейчас поступить, и одномоментным запросам отсылать сообщение, типа все занято, повторите позже.
2. Проверяем по базе существуют ли уже в течении 2 недель подобный uid по колонке created_at, делаем обработку и т.д..
3. Заносим в базу данные, и снимаем блокировку, чтобы другие запросы могли проходить.
Необходимо не допустить одинаковых одномоментных запросов.