Управление клиентами в базе данных - PullRequest
2 голосов
/ 10 марта 2009

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

У кого-нибудь есть идеи, как это сделать?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 10 марта 2009

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

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

Очевидно, вы не захотите раскрывать это конечным клиентам. Вместо этого просто спросите их, заказывали ли они ранее, и внесите в свой логин информацию.

1 голос
/ 10 марта 2009

Если возможно, позвольте пользователю войти в систему.

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

1 голос
/ 10 марта 2009

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

0 голосов
/ 10 марта 2009

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

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

Второе решение, которое может дополнить первое, основано на автозаполнении (http://en.wikipedia.org/wiki/Autocomplete);. Поскольку пользователь вводит данные для клиента, ваше приложение обеспечивает автоматическое заполнение для существующих данных клиента, которое соответствует введенному. Это улучшает вероятность того, что пользователь выберет существующую запись, а не наберет все новые данные. Это позволяет, например, кому-то печатать «Джон См» и видеть «Джон Смит, Джон Смарт, Джон Смак и т. д.». Каждое поле заполнено сужается выбор для автозаполнения для последующих полей (например, только так много Джон Смит в Бостоне, штат Массачусетс ...). Пользователям это нравится, потому что, опять же, это уменьшает объем работы, которую они должны сделать.

Третье решение, которое было затронуто ранее в другом ответе, - это нечеткие поиски. Это немного сложно реализовать хорошо, но очень мощно. Многие из популярных поисковых систем предприятия (например, Автономность, FAST, Verity и т. Д.) Делают это очень хорошо. Но умный программист также может реализовать собственное решение. Ключевые моменты включают поиск без учета регистра (так что поиск Lafleur будет соответствовать LaFleur) или использование SoundEx (поэтому поиск John будет соответствовать Jon). Для получения дополнительной информации см. http://en.wikipedia.org/wiki/Soundex.

Удачи,

Rick

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