Как быть при регистрации нового пользователя, если в БД нет города, нужного пользоват

mike

pmcoder
Нужен совет.

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

Города необходимо хранить именно в вышеописаном виде, т.к. на сайте они учавствуют в сортировке, фильтрации данных.

Вопрос в следующем. Как быть при регистрации нового пользователя, если в БД нет города, нужного пользователю?

Список городов может редактировать админ сайта. У меня нарисовалось 2 варианта:
1. Просить пользователя написать письмо админу сайта с просьбой добавить необходимый город в БД.
2. Дать пользователю самому ввести название города при этом сохранять данные о новом пользователе в отдельной таблице, а уже при решении админа зарегестрировать данного пользователя добавлять город в таблицу городов и соответственно перемещать его в таблицу зарегистрированых пользователей.

Мне не нравится ни один из вариантов. Может кто-то делал что-то аналогичное. Буду признателен за обмен опытом.
 

python

Новичок
Думаю можно немного изменить вариант 2:
добавить флаг активности в таблицу городов и добавлять город, введенный пользователем как "неактивный", а если админ решит пользователя принять - активными делаются и город и пользователь

аналогичный флаг активности для пользователей
 

kvf77

Red Devil
python
угу, а потом таблица будет завалена СПБ, Питер, Санкт-Питербург, Санкт-Петербург и иже с ним
 

python

Новичок
kvf77
да ради бога, так или иначе КАКАЯ-ТО таблица будет этим завалена. не нравится - сборку мусора делай. Кроме того, думаю после активизации первого Питера мало кто введет еще и СПБ.

вариантов - миллион. при реализации любого из них будет ЧТО-ТО лишнее
 

chama

Новичок
Вариант предложенный python это совмещение первого и второго(обмен мнениями между админом и пользователем), неособо напряга ни того ни другого. Сам так работаю уже два года.
В админке отображается новый город у пользователя при принятии решения, если он(город) не нравится можно выбрать другой, а этот выкинуть, только чутьчуть посложнее еще и с регионами и странами.
 
Кстати, с Питером, СПБ и Петербургом я помню извращался, по просьбе одного заказчика.
Было тогда элегантное решение.
Помимо флага "активности" города, было поле "linkid".
Те, у кого это поле не нулевое, не выводятся в списке автоматом, однако если пользователь вводил, например, Питер, то админ мог установить ссылку на нормальный ID "Санкт-Петербург", и в дальнейшем у всех пользователей, которые введут "Питер" Санкт-Петербург подставляется автоматом.

Но это, все-таки изврат, и добровольно я бы не стал так париться )
 

kvf77

Red Devil
mike

я обычно решаю проблему следующим образом - есть поле, которое указывает юзверь (текст вписывает) - его не трогаю, пусть будет как будет. Есть у него статус approved который либо 1 либо 2. Менеджер добавляет новый город в таблицу горордов, если надо, и указывает в другом поле ID города из правильной таблицы.

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

python

Новичок
kvf77
Ты читаешь сообщения в топике перед тем как писать ответ? В чем принципиальное отличие от описанного выше способа?
 

Фанат

oncle terrible
Команда форума
если я правильно понял, он пишет новый город не в таблицу городов, а в таблицу юзверей.
Отличие, действительно, не принципиальное и полностью. укладывается в твой миллион вариантов.

kvf77, давай только без флейма
 

mike

pmcoder
Спасибо всем за внимание. Наверное остановлюсь на варианте, предложенном kvf77.
 
Сверху