Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Создание ключа по фамилии  [new]
Iron MAn
Member

Откуда:
Сообщений: 13
Необходим алгоритм создания уникального ключа по фамилии
Применяемый в авия/жд перевозках
Фамилия, Имя, Отчество-->IDxxxx
14 дек 05, 08:02    [2169226]     Ответить | Цитировать Сообщить модератору
 Re: Создание ключа по фамилии  [new]
Владимир СА
Member

Откуда:
Сообщений: 7881
Iron MAn
Необходим алгоритм создания уникального ключа по фамилии
Применяемый в авия/жд перевозках
Фамилия, Имя, Отчество-->IDxxxx
А если Фамилия, Имя, Отчество совпадает полностью с другим челавеком, а даты рождения или место рождения разные???
14 дек 05, 08:21    [2169259]     Ответить | Цитировать Сообщить модератору
 Re: Создание ключа по фамилии  [new]
Iron MAn
Member

Откуда:
Сообщений: 13
В среднем какой либо чел. числится и на другом предприятии(организации)
Индекс (Ключ) должен быть уникален для ~100 000 записей
А также по ключу ищется (фильтруется) Фамилия
14 дек 05, 08:41    [2169290]     Ответить | Цитировать Сообщить модератору
 Re: Создание ключа по фамилии  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
m.id='ID'+Upper(allt(f_name)+allt(l_name)+allt(s_name))

Далее выбираем по ключу

select * from data where Unique_ID='IDПЕТРОВ'

По полю Unique_ID делаем индекс...

ЗЫ Бредовый способ... Распишите алгоритм который есть в ЖД. Не все же с ним знакомы.
14 дек 05, 10:16    [2169577]     Ответить | Цитировать Сообщить модератору
 Re: Создание ключа по фамилии  [new]
foxwizard
Member

Откуда:
Сообщений: 302
Ключ НЕ должен нести никакой смысловой нагрузки.
Чем плох обычный числовой ключ?
14 дек 05, 11:46    [2170040]     Ответить | Цитировать Сообщить модератору
 Re: Создание ключа по фамилии  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
foxwizard
Ключ НЕ должен нести никакой смысловой нагрузки.
Чем плох обычный числовой ключ?

Совсем не обязательно! Суррогатный первичный ключ (Primary Key) вводится только в том случае, если нет подходящего поля (или комбинации полей) таблицы, которые могли бы претендовать на роль Primary Key.
С уважением, Алексей.
14 дек 05, 12:20    [2170248]     Ответить | Цитировать Сообщить модератору
 Re: Создание ключа по фамилии  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
Точнее их может быть 2. Так называемый открытый - как в данном случае т.е. для общего пользования и закрытый т.е. обычный автоинкрементный ключ. Например как в справочниках 1С. (правда там закрытых нету :-) почти )

ЗЫ Может термины перепутал с несим шифрованием но суть такая. :-)
14 дек 05, 14:40    [2171082]     Ответить | Цитировать Сообщить модератору
 Re: Создание ключа по фамилии  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi Iron MAn!

Посчитай MD5 хеш от строки "сцепляющей" ФИО и прочие интересующие тебя
реквизиты (дату рождения например, пол, потолок :) ) - достаточно уникально
получится - правда по размеру великовать - в "читабельном" (не бинарном)
виде это будет либо 32, либо 22 знака (если переводить "просто" в HEX, и
если завернуть в BASE64 соответственно).
КОНЕЧНО идентичные наборы
ФИО+дата_рождения+что_ты_туда_ещё_захочешь_добавить дадут одинаковый ключ -
а вот для разных наборов вероятность получения дубля весьма невелика.
Если размер уж совсем никак не устраивает - используй не MD5, а другой,
более "короткий" алгоритм хэширования - CRC32 - всего 4 байта бинарных
данных - т.е. в читабельном виде это 8 либо 6 символов... Правда вероятность
получить дубли даже при разных ФИО - уже весьма велика - где-то 70% за то,
что будет хотя-бы 1 дубль среди 100000 записей... Для хэша размером хотя-бы
в 8 байт (бинарного представления) вероятность уже исчисляется миллиардными
долями процента :) Т.е. уже вполне надёжно.

P.S. Надёюсь что теперь не последует банальный вопрос как посчитать MD5 хеш
:) Т.к. на него есть банальный ответ - пользуйтесь поиском :)

Posted via ActualForum NNTP Server 1.3

15 дек 05, 02:16    [2173301]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить