2016-03-09 3 views
0

Я ищу идею лучших практик обработки того, что я пытаюсь сделать. У меня есть сайт, на котором я работаю, где пользователи будут вводить имена и фамилии людей для записи результатов соревнований для спортивной деятельности. У меня есть отдельные поля ввода для имени и фамилии (и их хранения отдельно в db). Это, в свою очередь, создает URL-адрес для этого первого и последнего имени и отображает их результаты по всем событиям. Два вопроса:Имя и фамилия для базы данных

  1. Как правило, лучше иметь отдельные поля ввода для имени и фамилии, а не для разбора одного поля с полным именем? Я делаю это именно так и продвигаюсь довольно далеко, поэтому на данный момент я действительно не хочу меняться, но просто интересно. В настоящее время у меня нет особой необходимости различать два, но это похоже на то, что я могу использовать в будущем.

  2. В настоящее время я не отслеживаю среднее имя, адрес или любую другую дополнительную информацию ... только имя и фамилию. Это не огромная проблема, если я не получаю кучу конкурентов, тогда я неизбежно столкнусь с несколькими «Джона Смитом» или выберем ваше любимое общее имя. Как это обычно обрабатывается? Я действительно не хочу требовать другой информации, потому что для моего использования это будет просто раздражать. Когда это произойдет, у меня может быть конкурент по имени Джон Смит с одной стороны страны и Джон Смит с другой стороны страны ... но когда сайт вычисляет их результаты по всем видам деятельности, он будет видеть их как одного и того же человека , Похоже, это было бы достаточно распространено, чтобы быть простым следующим шагом ...

спасибо!

+0

Для вопроса 2 вы можете сохранить «имя» в виде списка с именем, фамилией и «дублирующимся номером» (например, первый «Джон Смит» будет иметь «{« Джон », , «Smith», 0} 'и второй' {«John», «Smith», 1} '. – Majora320

+0

В вопросе 1 я не был ясен ... В настоящее время я обрабатываю имя и фамилию отдельно. это лучший вариант, и я сохраню его таким образом. – bassfan

ответ

0
  1. Я бы определенно сохранил имя и фамилию отдельно. Вам неизбежно захочется искать, фильтровать, группировать и т. Д. По имени, а их разделение делает это намного проще.

  2. У меня будет уникальный идентификатор первичного ключа, который сохраняет записи уникальными в базе данных. Пользователь может или не должен знать этот идентификатор, поэтому, если вам нужно уникальное значение, которое они могут использовать, то адрес электронной почты всегда хорош, потому что он всегда уникален. Вы также можете создать пользовательский идентификатор пользователя и сделать его уникальным, проверив, существует ли он перед вставкой.

+0

Спасибо за понимание. 1. Имеет смысл, я буду придерживаться отдельного первого и последнего. 2. Хмм, уникальный ключ. способ представить это удобным образом. Адрес электронной почты звучит хорошо, но, вероятно, пользователь, который вводит данные, не будет иметь этого в то время. Мне нужно будет выяснить, что пользователь сможет придумать как идентификатор. – bassfan

0
  1. Да, это лучше всего иметь отдельные поля для имени и фамилии. Как ваш парсер разбирается с людьми, чья первая и/или фамилия содержат пробел?

  2. Предлагаю добавить столбец идентификации в таблицу пользователя и добавить номер в URL. Никто не получает джон-кузнец, но, по крайней мере, вы можете сказать разницу между джон-куз-12 и джон-куз-163.

+0

спасибо за мысли, соглашайтесь с вашими точками. – bassfan