doublench21
@doublench21

Как избежать повторяющихся данных в БД ?

Есть скажем массив слов. Слов много, около 1000. Как мне записать все эти слова в бд со всеми словами учитывая то, что какие-то из них уже могут быть в бд. (id word) И ещё хотелось бы знать id всех слов массива.
Проблема в том, что всё это я делаю в цикле, что очень тормозит работу скрипта. Как бы можно это ускорить ?

P.S. Сам этот процесс также находится в цикле, что и выливается в очень долгую работу.
  • Вопрос задан
  • 2222 просмотра
Решения вопроса 1
@ugodrus
Используйте UNIQUE индекс к полю word чтобы избежать дублирования записей.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@RJs45
Вижу 2 варианта:
1. Unique key по полю word
2. Писать слова в массив, типа"
$result = array();
foreach ($source_array as $word) {
  $result[$word] = 1;
}

В итоге ключами массива $result и будут ваши уникальные слова.
Или даже проще:
$result = array_flip($source_array);
UPD: Или еще проще:
$result = array_unique($source_array);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы