2010-12-30 11 views
1

Я построил сайт для сдачи в аренду жилья и аренды жилья. Я создал страницу, где пользователи могут добавлять местоположения самостоятельно (до 6 уровней в глубину), но я столкнулся с проблемой. Пользователь может добавить местоположение, а именно:динамично обрабатывая географические местоположения

Северная Америка -> США -> Калифорния -> Сан-Франциско

Другой пользователь может приехать и добавить площадь под SF, которую он берет на себя, чтобы быть под SF (скажем Silver Terrace). Еще один пользователь может добавить ту же самую область, но он не будет смотреть под SF и хотел бы добавить, чтобы быть братом узел SF

Северная Америка -> США -> Калифорния -> Silver Terrace

Так что теперь мы будет иметь:

Северная Америка -> США -> Калифорния -> Сан-Франциско -> Silver Terrace
Северная Америка -> США -> Калифорния -> Silver Terrace

, который, конечно, дублированный =/Я могу сказать, что пользователь добавляет Silver Terrace во второй раз, когда он уже существует, но первый пользователь может поместить его неправильно, что вызывает проблему.

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

В других странах также возникает вопрос о включении или не включая государство/район/регион и так далее, чтобы быть частью пути для местоположений ...

Я прочитал довольно много сообщений о это, но я не могу склонить голову вокруг хорошего решения.

Трудно полностью исключить места, потому что я использую их для субдоменов, т.е. san-francisco.example.com или california.example.com. Места также позволяют пользователям просматривать по стране/штату/городу/области/району/и т.д., если пользователь не хочет (или не может) делать это с помощью карты.

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

ответ

2

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

В качестве мотивационного примера предположим, что у вас есть 20 000 пользователей в вашей системе и 10 000 из этих пользователей помещены в местоположение (в виде x -> (y ->) * z), который начинается с «США -> Калифорния»

Потому что «Соединенные Штаты -> Калифорния» - это элемент, который находится в таком большом количестве мест, вы можете быть уверены, что «Соединенные Штаты -> Калифорния ", по сути, является правильным местом. Этот подход имеет смысл при добавлении поддоменов, потому что вы можете не захотеть добавить дополнительный домен, пока значительная часть вашего населения не станет членом этого субдомена.

+0

мммм Мне это нравится, это хорошая идея – Kentor

1

Имейте скрытое значение, указанное на пути X-> Y-> Z, который обозначает Z-код Z. Это может быть самый простой способ определить, какие пути дублируются.

+0

дубликаты - только одна часть проблемы ... – Kentor