#php #mysql
#php #mysql
Вопрос:
Я работаю над решением для предотвращения дублирования записей в базе данных, которые могут возникнуть в результате моей конфигурации.
Я планирую создать md5-хэш некоторых значений и проверить таблицу, чтобы увидеть, существует ли этот хэш.
Это более эффективно достигается с помощью таблицы mysql или чего-то вроде текстового файла на сервере?
Может кто-нибудь предложить более элегантное решение?
Я ценю любую помощь.
Комментарии:
1. что вы храните в базе данных? какие записи?
2. Если вы используете движок InnoDB, проверьте внешние ключи и индексы полей.
Ответ №1:
Вы можете создать УНИКАЛЬНЫЙ ИНДЕКС и добавить к нему набор столбцов, значения в которых вы не хотите дублировать. Затем база данных вернет вам сообщение об ошибке при каждой транзакции, которая пытается дублировать эти данные. Проверьте это: Создайте индекс по ссылке MySQL
Комментарии:
1. Я делал это сегодня с некоторыми абсолютно ужасными данными из архаичной базы данных MS SQL. Это очень весело…
2. Спасибо — я действительно не думал об этом варианте, потому что это комбинация столбцов (а не какой-либо один столбец), которые должны быть уникальными. Это звучит намного проще, чем создавать новую таблицу только для проверки и быстрее / меньше нагрузки на сервер.