Найбільш елегантний спосіб боротьби з дублікатами записів

Я працюю над рішенням для запобігання дублювання записів у базі даних, які можуть виникнути в результаті моєї конфігурації.

Я планую зробити md5 хеш деяких значень і перевірити таблицю, щоб побачити, що цей хеш вже існує.

Чи ефективніше це досягти, використовуючи таблицю MySQL або щось на зразок txt-файлу на сервері?

Чи може хтось запропонувати більш елегантне рішення?

Я ціную будь-яку допомогу.

0
що ви зберігаєте в базі даних? які записи?
додано Автор evilone, джерело
Якщо ви використовуєте движок InnoDB, перевірте зовнішні ключі та індекси поля.
додано Автор Chris Laplante, джерело

1 Відповіді

You can create a UNIQUE INDEX and add to it the column set in which values you don't want to be duplicated. Then the DB will return you an error on every transaction that attempts to duplicate that data. Check this: Create Index on MySQL reference

3
додано
Я роблю це сьогодні з деякими абсолютно жахливими даними з архаїчної бази даних MS SQL. Це весело ...
додано Автор Bojangles, джерело
Дякую - я не думав про цю опцію, тому що це комбінація стовпців (а не жодного стовпця), які повинні бути унікальними. Це звучить набагато простіше, ніж створити нову таблицю лише для перевірки та швидшого/меншого навантаження на сервер.
додано Автор JohnCharles117, джерело
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php