Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Борьба с дублированием


Страницы:   1 2

paul_k ©   (2003-10-29 10:45:00) 

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


paul_k   (2003-10-29 17:15:00) [1]

КЛАДР это хорошо.. только не охватывает он все.
для себя нашел приемлемое решение
http://delphibase.endimus.ru/?action=viewfunc&topic=strmath&id=10289

http://aforge.ibd.lv/?27&orion=2362c8a7c63301d6287dd7b5f5315b79

Всем спасибо за помощь и участие


Cranium   (2003-10-29 17:11:00) [2]

В случае со справочником клиентом лечится на мой взгляд следующем образом ИНН обязательно к заполнению, адреса вводить через КЛАДР, благо это не проблема (имеется для всей страны)...


paul_k   (2003-10-29 16:35:00) [3]

2 kaif
написал же - пример с "Газпром" неудачен
более удачный пример - "Н Новгород" , "Нижиний Новгород" и производные.


Ломброзо   (2003-10-29 15:59:00) [4]

Отыскал в загашниках ссылок.
Конечно, можно и пользователя построить, но лучше вот:

http://itman.narod.ru/source/source.html


kaif   (2003-10-29 15:41:00) [5]

Кстати, не исключено, что "ООО Вася Пупкин" это тоже ГАЗПРОМ. И никакой ИИ тогда не спасет.


kaif   (2003-10-29 15:39:00) [6]

Я считаю, что для каждой задачи есть особенное решение. Например, если вычснилось, что ИЧП ГАЗПРОМ и ОАО ГАЗПРОМ одно и то же, то в бухгалтериях не следует перенаправлять ссылки, так как нарушится преемственность отчетности. Вместо этого следует закрыть счет ИЧП ГАЗПРОМ и начислить сумму на счет ОАО ГАЗПРОМ отдельной бухгалтерской проводкой. ИМХО, то же самое следует делать и с товарами (списывать один на счет другого). Подозреваю, что именно отход от бухгалтерской техники в некоторых учетных программах и порождает эту проблему. Многим кажется, что проводки не нужны и без них можно обойтись. Создать типа реляционную модель, связи один-ко-многим, справочники и - вперед. Не совсем это так... И проблема, о которой зашла речь имеет в бухгалтерской традиции вполне определенное и безконфликтное решение.


paul_k   (2003-10-29 15:28:00) [7]

2 ZrenBy
Спасибо.. понял.
Значит административно и дальше никак.ну-ну.


ZrenBy   (2003-10-29 14:43:00) [8]

http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=10671


paul_k   (2003-10-29 12:37:00) [9]

В Дельфи тоже прописан ряд функций основанных на SoundEx. Но кирилицы они не знают.
прописано некое соответствие символов.
// A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
(0, 1, 2, 3, 0, 1, 2, -1, 0, 2, 2, 4, 5, 5, 0, 1, 2, 6, 2, 3, 0, 1, -1, 2, 0, 2,
// [ / ] ^ _ "
0, 0, 0, 0, 0, 0,
// a b c d e f g h i j k l m n o p q r s t u v w x y z
0, 1, 2, 3, 0, 1, 2, -1, 0, 2, 2, 4, 5, 5, 0, 1, 2, 6, 2, 3, 0, 1, -1, 2, 0, 2);

а есть ли где либо описание почему именно такое соответствие и как построить подобный ряд для кириллицы


Ломброзо   (2003-10-29 12:22:00) [10]

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


Johnmen   (2003-10-29 12:21:00) [11]

>paul_k ©

Такие ИИ узко специализированы и зависят от предметной области.
Так что, если есть желание, пиши сам со своими принципами и алгоритмами.
Например, такой момент: <Если пишем "газпром наш любимый" или "Газпром ОАО" или "контора ГАЗПР.", то считать всё это, как "Газпром", т.к. присутствует определяющая однозначная последовательность "LowerCase("газпр")", являющаяся глобальным синонимом>


paul_k   (2003-10-29 12:11:00) [12]

Остался один вопрос. Как научить SoundEx работать с кирилицей.
или в транслит переводить все?


Anatoly Podgoretsky   (2003-10-29 11:44:00) [13]

Была изобретена в конце 19 века для борьбы с подобным безобразием при проведении толи выборов, толи переписи


Anatoly Podgoretsky   (2003-10-29 11:43:00) [14]

paul_k © (29.10.03 11:39) [20]
По определенному алгоритму преобразовывает символьнуж последовательность в 4 символьный хеш


paul_k   (2003-10-29 11:39:00) [15]

А можно подробнее как SoundEx работает?

Что означает возвращаемый набор символов?


Anatoly Podgoretsky   (2003-10-29 11:35:00) [16]

Vlad © (29.10.03 11:22) [16]
Зачем смелчак, тут доброволец не нужен

Ломброзо © (29.10.03 11:32) [17]
SoundEx не панацея. НО ПОМОЩНИК


Sergey13   (2003-10-29 11:33:00) [17]

2Vlad © (29.10.03 11:22) [16]
>А если по каждой из этих дублирующих записей уже куча информации в различных таблицах
Я же написал "переписывая ссылки на остающуюся запись". Это делается элементарно одним запросом на таблицу. А вот если 20 газпромов будут ссылаться друг на друга по кругу можно получить еще более удивительные результаты при составлении тех же отчетов. Или постоянноследить за корректностью таких взаимных ссылок.

2paul_k © (29.10.03 11:19) [15]
>речь о том как выявить потенциальный дубликат ещё при вводе.
Если ловить по уникальным полям - вопроса нет - все просто. Если по разнице в написании - то только ИИ, как справедиво заметил АП[1].


Ломброзо   (2003-10-29 11:32:00) [18]

мне кажется, проблему можно решить частью регулярными выражениями, частью при помощи русского аналога SoundEx; для оракла я про такой модуль что-то слышал - поищи по "RCO" и "SoundEx"


Vlad   (2003-10-29 11:22:00) [19]

>Sergey13 © (29.10.03 11:17) [13]
Как все просто у вас.
А если по каждой из этих дублирующих записей уже куча информации в различных таблицах, т.е. открытые лицевые счета, проводки итп, что с ними делать ? Неужто найдется смельчак который все ссылки будет переправлять ?


paul_k   (2003-10-29 11:19:00) [20]

Sergey13 ©
речь о том как выявить потенциальный дубликат ещё при вводе.
хотя алгоритм "отлова" врятли будет отличатся.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо