Мой вопрос о лучшей практике.
У меня есть три таблицы:
- Пользователи (ID, ИМЯ)
- Карты (ID, НОМЕР)
- Пользовательские карты (USER_ID, CARD_ID)
Также у меня есть страница с формой, куда я могу импортировать файл Excel с данными. Структура Excel:
-------------------------------
| Users's name | Card number |
-------------------------------
| User A | 12345 |
-------------------------------
| User B | 67889 |
-------------------------------
Я хочу заполнить свою третью таблицу Пользовательские карты .
Вопрос в том, как проверить, есть ли в БД пользователи и карточки?
Конечно, я знаю, что я могу сделать, следуя:
// check user exists
$user = User::where('name', $userName)->first();
// check card exists
$card = Card::where('number', $cardNumber)->first();
Но это не выглядит хорошо для сервера, потому что код работает без какой-либо оптимизации. Итак, можно ли использовать оператор Prepared внутри цикла Excel следующим образом:
$statement = $me->getPdo()->prepare($query);
или вы можете порекомендовать мне другой лучший способ добиться этих проверок?
Я достиг своей цели без какого-либо подготовленного заявления, но я думаю, что существует более изящный способ сделать это.
Я использую Laravel 5.4 и Laravel Excel (https://laravel -excel.com / ). MySQL 5.0.11