Что лучше для профиля, номера или имени? - PullRequest
5 голосов
/ 24 декабря 2009

Большинство сайтов, которые имеют какой-то профиль пользователя, будут делать что-то вроде этого:

profile.php? U = 123445

или еще:

profile.php? U = jason.Davis

Так что мне любопытно, будет ли медленнее использовать имя для поиска профиля с помощью php / mysql, а не использовать число для поиска записи профиля?

Ответы [ 7 ]

12 голосов
/ 24 декабря 2009

Поиск строки, вероятно, будет медленнее, чем числовой, вероятно, в каждом случае. Но разница настолько мала, что ее никогда не заметят. Пока у вас не будет действительно большого количества пользователей.

Но посмотрите, ТАК: они делают и то, и другое.

http://stackoverflow.com/users/187606/pekka

Номер для быстрого доступа к базе данных.

Название для красивой внешности и видимости поисковой системы.

Нет конфликта с двумя именами, потому что идентификатор используется для поиска в записи.

Я думаю, что это лучшее из обоих миров и оптимальное.

Требуется, однако, перезапись URL.

2 голосов
/ 24 декабря 2009

Имя будет более читабельным и проще для отладки, но не обязательно, чтобы имена были уникальными, поэтому его нужно будет дополнить уникальным (я полагаю, что это на самом деле слово, используемое в объединении), например добавьте цифры к концу имени.

1 голос
/ 24 декабря 2009

Основная проблема, которую я вижу при использовании имени, заключается не в скорости поиска, а в том, что у вас не может быть Джейсона Дэвиса из Омахи, Небраска и другого Джейсона Дэвиса из Перта, Западная Австралия.

Во что бы то ни стало, используйте имя во всем, что видит мир, но для обеспечения уникальности я бы использовал целочисленный идентификатор. Это также может ускорить запросы к базе данных, но это будет для меня второстепенной задачей. Сомнительно, что использование строки вызовет слишком много беспокойства для вашего приложения.

0 голосов
/ 24 декабря 2009

будет медленнее использовать имя для поиска профиля [...]?

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

0 голосов
/ 24 декабря 2009

Оба не правы. Вы не хотите получать profile.php с параметром u = 12345. Вы хотите получить профиль пользователя 12345. Поэтому используйте /profile/12345.

Прочитай что-нибудь про REST, это круто :) 1003 *

0 голосов
/ 24 декабря 2009

Если вы используете индекс БД, он не должен быть заметно медленнее. Но что произойдет, если у вас есть два Джейсона Дэвиса? UID хороши тем, что вы можете гарантировать уникальность.

0 голосов
/ 24 декабря 2009

Если имя является ключом в базе данных, время поиска не должно быть слишком разным, и использование имени даст вам более привлекательные URL, поэтому я бы предложил использовать имена.

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