Предположим, я хотел бы проверить, дублирован ли комментарий или нет.
У меня есть два варианта:
1) Создайте запрос к базе данных и проверьте его:
выберите * из комментариев, где content = $ santized_content и post_id = $ id
2) Создайте уникальный индекс для комментариев и post_id и поймайте ошибку MySQL.
Для моего сложного и загруженного приложения важно максимально уменьшить количество запросов к базе данных. Однако первый вариант более привычный и читабельный.
Вы можете обобщить этот вопрос на другие ситуации.
MySQL определенно быстрее, чем PHP. Я всегда предпочел бы использовать неудачный INSERT или REPLACE против подходящего ключа, чем проверка в PHP.
Единственное исключение, вероятно, состоит в том, что ваш ключ становится очень сложным, что, очевидно, создаст дополнительную нагрузку на MySQL для всех запросов, выполняемых к этой таблице. Тем не менее, нет универсального ответа на вопрос, что было бы слишком сложно, чтобы стоить делать. Это в основном вопрос реальных испытаний.
я предпочитаю номер 2,
тогда это функция УНИКАЛЬНОЙ.