Использование заголовков вместо ярлыков для поиска ключей в базе данных? - PullRequest
0 голосов
/ 26 мая 2020

Будет ли сильно снижена производительность, если вместо использования слага для поиска статьи (с слагом, хранящимся в базе данных), вы сохраните данные как уникальный заголовок, например, My Article Title, а затем просто взяли слаг из URL - my-article-title, дефисы удалены / заменены пробелами, а затем произведен поиск в базе данных указанной c статьи?

1 Ответ

1 голос
/ 26 мая 2020

Хотя поиск по столбцу title (простой текст произвольной формы) допустим, будет трудно полагаться на точность при переводе slug в title, так как изменение slug может быть проблематичным c. Возьмите следующие примеры:

title                | slug
"Spot-Check Article" | "spot-check-article"
"Bob's Article"      | "bobs-article"

Если вы попытаетесь перевернуть заголовок (заменить - на и использовать слова с заглавной буквы), вы получите Spot Check Article и Bobs Article и Model::where('title', 'Spot Check Article')->orWhere('title', 'Bobs Article')->first(); не вернет результатов.

Если предположить, что PHP отвечает за преобразование предоставленного slug в title, тогда поиск по сути не будет медленнее, чем поиск непосредственно по столбцу slug , но если вы полагаетесь на mysql для преобразования, то это будет намного медленнее. В целом, лучшим подходом будет сохранение слага в базе данных, обеспечение уникальности и поиск по столбцу slug.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...