powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Идентификатор человека
79 сообщений из 79, показаны все 4 страниц
Идентификатор человека
    #34142583
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть список людей, есть список их посещений.
Нужен идентификатор человека для связи этих списков пожизненный..
Документы (паспорта и т.п.) не подходят, т.к. меняются в жизни несколько раз либо выдаются через несколько лет после рождения (страховое пенсионное свидетельство) + не все их постоянно носят с собой..
Искуственные идетификаторы (GUID например) не подходят, т.к. данные будут сливаться из разных учреждений и следовательно у одного человека получиться два идентификатора..

Варианты:
1) Уникальный идентификатор человека: ФАМИЛИЯ+ИМЯ+ОТЧЕСТВО+ДАТАРОЖДЕНИЯ+МЕСТОРОЖДЕНИЯ
получаем длинный текстовый идентификатор с высокой степенью уникальности (маловероятно рождение двух людей с одинаковыми фио в один день в одном населенном пункте, кроме Москвы конечно :) )
Неясно как быть при смене фамилии (например при замужестве)..
Немогу предсказать скорость работы БД (SQL Server 2000) при большом количестве данных (предполагается около 2-3 млн. человек и 15-20 млн. посещений в сводной базе на местах конечно меньше)

2) ?

Ктонибудь сталкивался с такой проблемой.. каким образом строили идентификатор человека?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142610
anjey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по ходу напрашиваются отпечатки пальцев :)

как там счас с аппаратными сканерами отпечатков ??? ведь наверняка есть такие устройства...
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142659
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anjeyпо ходу напрашиваются отпечатки пальцев :)

как там счас с аппаратными сканерами отпечатков ??? ведь наверняка есть такие устройства...
а сервер умеет строить индексы по отпечаткам?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142697
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо флудить.. проблема серьезная, но какое то решение должно быть.. неидеальное.. тут уж смотря чем придется поступиться..
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142708
OS/360
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anjeyпо ходу напрашиваются отпечатки пальцев :)

как там счас с аппаратными сканерами отпечатков ??? ведь наверняка есть такие устройства...
Не забывайте, что не всегда есть пальцы.......
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142729
OS/360
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уникальный Идентификатор - суррогатный ключ

Всё остальное - атрибуты. 100% "надёжности" не будет, предусмотрите механизм объявления двух персон одной. Ищите в форуме - копий уже сломано не мало и будет поломано ещё
P.S.
"Карл Маркс и Фридрих Энгельс - два человека, а не четыре, а Слава КПСС - вовсе не человек"
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142782
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OS/360Уникальный Идентификатор - суррогатный ключ

Всё остальное - атрибуты. 100% "надёжности" не будет, предусмотрите механизм объявления двух персон одной. Ищите в форуме - копий уже сломано не мало и будет поломано ещё
P.S.
"Карл Маркс и Фридрих Энгельс - два человека, а не четыре, а Слава КПСС - вовсе не человек"

Какой суррогатный ключ использовать - GUID? Как он нагрузит БД при таких объемах данны?

По каким параматрам объявлять две персоны одной?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142823
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не вижу проблемы в вопросе:
- нет никакого АВТОраспознователя одного человека, придётся писать свои БизнесПравила
- Привязываться надо к чему-либо официальному (список паспортов/ИНН/штрих-кодНаРуке)
- Постоянный мониторинг базы на поиск "подозрительных" запуском ХП
Код: plaintext
ДайМнеСовпадающихПо(True, False, True, True)

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142829
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во! ДНК в качестве ключа подойдёт :)
Правда у мухи Дроздофиллы похожая :)
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142867
SchwanЕсть список людей, есть список их посещений.
Нужен идентификатор человека для связи этих списков пожизненный..
Документы (паспорта и т.п.) не подходят, т.к. меняются в жизни несколько раз либо выдаются через несколько лет после рождения (страховое пенсионное свидетельство) + не все их постоянно носят с собой..
Искуственные идетификаторы (GUID например) не подходят, т.к. данные будут сливаться из разных учреждений и следовательно у одного человека получиться два идентификатора..

Варианты:
1) Уникальный идентификатор человека: ФАМИЛИЯ+ИМЯ+ОТЧЕСТВО+ДАТАРОЖДЕНИЯ+МЕСТОРОЖДЕНИЯ
получаем длинный текстовый идентификатор с высокой степенью уникальности (маловероятно рождение двух людей с одинаковыми фио в один день в одном населенном пункте, кроме Москвы конечно :) )
Неясно как быть при смене фамилии (например при замужестве)..
Немогу предсказать скорость работы БД (SQL Server 2000) при большом количестве данных (предполагается около 2-3 млн. человек и 15-20 млн. посещений в сводной базе на местах конечно меньше)

2) ?

Ктонибудь сталкивался с такой проблемой.. каким образом строили идентификатор человека?
Возьмите № свидетельства о рождении - оно с нами от начала (с первых дней) до конца жизни... Остальное "от лукавого"
Приоткройте тайну - что это за мега-система такая: слияние разных баз, список посещений, 2-3 млн. человек зарегистрированных в базе данных, да еще и условие постоянного наличия документа, удостоверяющего личность... Уж не про нелегальных иммигрантов ли речь идет...
...
Рейтинг: 0 / 0
Идентификатор человека
    #34142969
Nalog'овик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Идентфикационный номер налогоплательщика (ИНН). Присваивается единыжды, при смене места жительства не меняется, после смерти повторно этот же номер не выдается. Правда не все физ. лица его получили...
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143095
423543543543
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИНН при смене места регистрации - меняется.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143184
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав СВозьмите № свидетельства о рождении - оно с нами от начала (с первых дней) до конца жизни...Боюсь, что при утере оно восстанавливается под другим номером...

Если требования настолько строгие, то, может, правда задуматься об отпечатках пальцев?
сканеры сейчас стоят вполне потребных денег, индексировать их (ес-сно не изображение, а некий код) в базе - не проблема...
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143216
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftв базе - не проблема...

проблема индексировать и анализировать данные об отпечаках пальцев а некий код - это что подразумевается? у попа была собака?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143274
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proposed amendment miksoftв базе - не проблема...

проблема индексировать и анализировать данные об отпечаках пальцев а некий код - это что подразумевается? у попа была собака?Сейчас ссылку не найду, но читал про сканеры отпечатков пальцев для целей безопасности и управления доступом. К ним в комплекте идет специальное ПО, которое изображение отпечатка переводит в 128-битный (или 128-байтный, не помню) код. Этот код примечателен тем, что:
1) равенство кодов говорит о равенстве отпечатков.
2) невозможно обратное преобразование из кода в отпечаток, что соответствует нормам защиты частой жизни и т.п.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143386
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не о каких сканеров отпечатков речь конечно не идет, мы же не ФСБ :)

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

Но подойдет ли ГУИД для объединения таблиц людей и посещений при подобных объемах данных (будут еще и разнообразные отчеты строится)?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143419
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, не так давно обсуждали .
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143423
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SchwanНе о каких сканеров отпечатков речь конечно не идет, мы же не ФСБ :)Тогда ослабляйте требования.
И, ес-сно, продумывайте процедуры объединения и разделения "аккаунтов".
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143522
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
требования сканировать отпечатки пальцев, как и размеров других участков тела :) мягко говоря незаконно.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Идентификатор человека
    #34143574
Сергей Сергеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно по каким призанкам на данный момент регистрируется "посещение" человека. Под уникальным идентификатором подразумевается какой то признак, предъявляемый человеком в процессе "посещения"?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34144155
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей СергеевичНе совсем понятно по каким призанкам на данный момент регистрируется "посещение" человека. Под уникальным идентификатором подразумевается какой то признак, предъявляемый человеком в процессе "посещения"?

Нужно знать состояние человека при посещении: документы, место жительства, социальный статус и т.п.

Вообщем вырисовывается такая структура (убавил щучку):

Таблица ЛЮДИ:
1) ИД ЧЕЛОВЕКА (ГУИД)
2) ФАМИЛИЯ
3) ИМЯ
4) ОТЧЕСТВО
5) ДАТА РОЖДЕНИЯ
6) МЕСТО РОЖДЕНИЯ
7) ОГРН УЧРЕЖДЕНИЯ (УНИКАЛЬНЫЙ ИД УЧРЕЖДЕНИЯ)

Таблица СОСТОЯНИЯ
1) ИД СОСТОЯНИЯ (СЧЕТЧИК)
2) ИД ЧЕЛОВЕКА (ИЗ ЛЮДИ)
3) АДРЕС
4) ВИД ДОКУМЕНТА
5) СЕРИЯ
6) НОМЕР
7) СТАТУС (ПЕНСИОНЕР,СТРУДЕНТ И Т.П.)

Таблица ПОСЕЩЕНИЯ
1) ИД ПОСЕЩЕНИЯ (ГУИД)
2) ИД СОСТОЯНИЯ (ИЗ СОСТОЯНИЯ)
3) ДАТА
4) ПРИЧИНА
5) РЕЗУЛЬТАТ

Таким образом мы сможем объединять данные внутри учреждения и внутри территории, а так же иметь информацию о статусе человека при каждом конкретном состоянии..

Пришлось пожертвовать глобальной идентификацией человека :) - как видно идентифицируется уникально только внутри учреждения, в принципе пока и не требуется большего..

Кто чего скажет?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34144329
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГУИД человека не несёт никакой смысловой нагрузки - заменить на счётчик.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Идентификатор человека
    #34144370
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anjeyкак там счас с аппаратными сканерами отпечатков ???
Хреново. По опыту использования - плохо опознают и хорошо ломаются. Хотя само собой первое больше софтовая проблема.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34144797
OS/360
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Schwan
Какой суррогатный ключ использовать - GUID? Как он нагрузит БД при таких объемах данны?

По каким параматрам объявлять две персоны одной?

вероятно, GUID нагрузит СУБД существенно меньше, чем составной естественный ключ по фио с датой рождения

Две персоны объявляются совпадающими, если в процессе работы выявилось, что одна персона по ошибке получила более одного идентификатора.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34144992
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OS/360

вероятно, GUID нагрузит СУБД существенно меньше.

да, может быть... но что он даст в контексте исходного вопроса
...
Рейтинг: 0 / 0
Идентификатор человека
    #34145237
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: SchwanЕсть список людей, есть список их посещений.
> Нужен идентификатор человека для связи этих списков пожизненный..
> Документы (паспорта и т.п.) не подходят, т.к.
> Универсального решения к сожалению сейчас нет...
Паспорт меняется, ИНН просто не у всех, СНИЛС - хоть и должен быть у
всех (это не всегда верно), но к сожалению, по своему опыту могу
сказать, что у разных людей может быть один и тот же... в ПФ тоже люди
работают... в общем стоит думать об механизмах выявления дублей

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Идентификатор человека
    #34145729
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ГУИД человека не несёт никакой смысловой нагрузки - заменить на счётчик.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

А как объединять базы тогда?
Вообще и в талице состояния идентификатор нужно делать тоже ГУИД, но тогда нужна еще отметка "Текущее"..
...
Рейтинг: 0 / 0
Идентификатор человека
    #34145746
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должна быть возможность объединять все данные на уровне учреждения и всех учреждений..

Как поведет себя база с большим объемом данных (милионы) при использовании ГУИД в качестве идентификатора во всех трех таблицах ?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146002
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SchwanДолжна быть возможность объединять все данные на уровне учреждения и всех учреждений..

Как поведет себя база с большим объемом данных (милионы) при использовании ГУИД в качестве идентификатора во всех трех таблицах ?
Не изобретай велосипед.
Вопрос объединения БД (репликация) при совпадении кодов товара обмусолен в форуме MS SQL Server тысячу и один раз.

ГУИД здесь не поможет и СУБД с ним работает медленнее.
С таким-же успехом (если боятся совпадения счётчика) можно добавлять БД№1 в БД№2 не заполняя счётчик в целевой БД (он сам заполнится).

А вот как ты будешь искать 2-х Ивановых в БД№1 и в БД№2 если базы заполнялись разрозненно это твои проблемы (проектирования).
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146082
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Должна быть возможность объединять все данные на уровне учреждения и всех учреждений..

Очередной национальный проект? Не занимайтесь фигней, заплатите денег тем, кто умеет решать такие задачи.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146183
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Должна быть возможность объединять все данные на уровне учреждения и всех учреждений..

Очередной национальный проект? Не занимайтесь фигней, заплатите денег тем, кто умеет решать такие задачи.вышел закон "О персональных данных" федерального уровня . До 2010 года надо запустить федеральную БД.

Чел наверно оттуда ))))
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146267
Сергей Сергеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормализации данных нет вообще имхо.... структуру БД надо перестраивать...
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146454
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей СергеевичНормализации данных нет вообще имхо.... структуру БД надо перестраивать...

А конкретно?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146478
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 SchwanДолжна быть возможность объединять все данные на уровне учреждения и всех учреждений..

Как поведет себя база с большим объемом данных (милионы) при использовании ГУИД в качестве идентификатора во всех трех таблицах ?
Не изобретай велосипед.
Вопрос объединения БД (репликация) при совпадении кодов товара обмусолен в форуме MS SQL Server тысячу и один раз.

ГУИД здесь не поможет и СУБД с ним работает медленнее.
С таким-же успехом (если боятся совпадения счётчика) можно добавлять БД№1 в БД№2 не заполняя счётчик в целевой БД (он сам заполнится).

А вот как ты будешь искать 2-х Ивановых в БД№1 и в БД№2 если базы заполнялись разрозненно это твои проблемы (проектирования).

Есть БД1, есть БД2 - производиться выгрузка данных в какой либо формат, затем данные загружаются в БД3.. (Никакой сети нет!). Если получилось 2 Ивановых, то (если это один и тот же человек), то приводим его к одному (ХП например).. Это если есть ГУИД.. А если нет? Тогда мне непонятно как сохранять связь между данными.. Просветите.. :)
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146486
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Schwan Сергей СергеевичНормализации данных нет вообще имхо.... структуру БД надо перестраивать...

А конкретно?например1: человек сменил фамилию (ИО).

например2: одно посещение по нескольким причинам; по одной причине несколько результатов.

например3: у человека несколько статусов.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146546
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adv Schwan Сергей СергеевичНормализации данных нет вообще имхо.... структуру БД надо перестраивать...

А конкретно?например1: человек сменил фамилию (ИО).

например2: одно посещение по нескольким причинам; по одной причине несколько результатов.

например3: у человека несколько статусов.

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

2) Таблицу посещений давайте трогать не будем пока - поля которые я прописал в ней условные, я лишь пытался показать связь между таблицами..

3) ДА учеловека несколько статусов: эта таблица используется для того чтобы хранить информацию о них - т.е. знать какой статус был у человека при каждом конкретном посещении. Но мы должны естественно знать текущий (последний) статус (либо максимальный код, либо если код ГУИД, то тогда нужна отметка что статус текущий (логическое поле)..
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146557
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне важно принципиальное построение БД для такой задачи: т.к. объемы данных будут довольно большие и использоваться будет много лет..
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146569
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. весело будет искать по фамилии, например, посещения товарища. Или вы по ид искать будете:)?

2. не трогаем по просьбе трудящихся.

3.
>т.е. знать какой статус был у человека при каждом конкретном посещении
при конкретном посещении, например, два статуса - что делаем?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146592
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аффтар! У вас репликация? Или вы это слово не знаете? Если знаете то по какому типу?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Идентификатор человека
    #34146785
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adv1. весело будет искать по фамилии, например, посещения товарища. Или вы по ид искать будете:)?

2. не трогаем по просьбе трудящихся.

3.
>т.е. знать какой статус был у человека при каждом конкретном посещении
при конкретном посещении, например, два статуса - что делаем?

1) Запрос типа:
SELECT ПОСЕЩЕНИЯ.*
FROM (ПОСЕЩЕНИЯ LEFT JOIN СОСТОЯНИЯ ON ИД_ПОСЕЩЕНИЯ.ИД_СОСТОЯНИЯ=СОСТОЯНИЯ.ИД_СОСТОЯНИЯ) LEFT JOIN ЛЮДИ ON (СОСТОЯНИЯ.ИД_ЧЕЛОВЕКА=ЛЮДИ.ИД_ЧЕЛОВЕКА)
WHERE ЛЮДИ.ФАМИЛИЯ LIKE "ПЕТРОВ%"

Должен вывести посещения всех Петровых и Петровских.. Или Вы имеете ввиду что эти запросы будут "тяжелые"?

2) Как может быть два статуса при одном посещении: в таблице ПОСЕЩЕНИЯ только один код статуса.. Т.е. связь один ко многим (Один статус - много посещений). Если статус изменился создаем новый на основе данных предыдущего.. Не может же быть у человека два паспорта одновременно?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34147303
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема идентификации физлиц уже обсуждались, можете поискать.
Конкретно, Dik76 к сожалению прав - универсального 100%-го решения нет.
Есть решения с большей или меньшей надежностью - сравнение по ФИО + дата рождения + ИНН + паспорт. Дополнительно - здесь уже кто-то предложил интересный вариант - сравнений цифр в адресе (кроме индекса). Для сравнения ФИО можно попробовать нечеткий поиск - дабы ловить ФИО, набитые с ошибками.
Полной гарантии эти способы не дадут, но... приблизят.


Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
Идентификатор человека
    #34147314
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Аффтар! У вас репликация? Или вы это слово не знаете? Если знаете то по какому типу?
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Да с репликациями не фонтан.. :)
Подскажите тогда как реплицировать БД на двух компьютерах с MSDE и без сети?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34147330
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aagПроблема идентификации физлиц уже обсуждались, можете поискать.
Конкретно, Dik76 к сожалению прав - универсального 100%-го решения нет.
Есть решения с большей или меньшей надежностью - сравнение по ФИО + дата рождения + ИНН + паспорт. Дополнительно - здесь уже кто-то предложил интересный вариант - сравнений цифр в адресе (кроме индекса). Для сравнения ФИО можно попробовать нечеткий поиск - дабы ловить ФИО, набитые с ошибками.
Полной гарантии эти способы не дадут, но... приблизят.


Nobody faults but mine... (LZ)

Для набивки имен и отчеств используются справочники.. Для идентификации человека несколько параметров Ф.И.О.+Дата рождения+место рождения, можно использовать СНИЛС и т.д.
Весь вопрос теперь в другом: какую структуру БД создать чтобы была возможность объединения данных?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34147469
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SchwanВесь вопрос теперь в другом: какую структуру БД создать чтобы была возможность объединения данных?
репликация, либо административными мерами (ты не трогаешь моих, я не трогаю твоих) :))
...
Рейтинг: 0 / 0
Идентификатор человека
    #34147947
Фотография adv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Schwan1) Запрос типа:
SELECT ПОСЕЩЕНИЯ.*
FROM (ПОСЕЩЕНИЯ LEFT JOIN СОСТОЯНИЯ ON ИД_ПОСЕЩЕНИЯ.ИД_СОСТОЯНИЯ=СОСТОЯНИЯ.ИД_СОСТОЯНИЯ) LEFT JOIN ЛЮДИ ON (СОСТОЯНИЯ.ИД_ЧЕЛОВЕКА=ЛЮДИ.ИД_ЧЕЛОВЕКА)
WHERE ЛЮДИ.ФАМИЛИЯ LIKE "ПЕТРОВ%"

Должен вывести посещения всех Петровых и Петровских.. Или Вы имеете ввиду что эти запросы будут "тяжелые"?
Я имел ввиду, что если петров поменял фамилию на сидоров, то вашим запросом вы не найдёте его посещения.

автор
2) Как может быть два статуса при одном посещении: в таблице ПОСЕЩЕНИЯ только один код статуса.. Т.е. связь один ко многим (Один статус - много посещений). Если статус изменился создаем новый на основе данных предыдущего.. Не может же быть у человека два паспорта одновременно? автор7) СТАТУС (ПЕНСИОНЕР,СТРУДЕНТ И Т.П.)не раскрывая итп товарисчь может быть и пенсионером (ex. военным) и студентом (ex. заочником).
...
Рейтинг: 0 / 0
Идентификатор человека
    #34147998
laleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вчера попытался ответить, подготовил текст, что-то не сложилось. Пробую.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34148046
laleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть опыт анализа БД на 400 000 человек.
Данные взяты по миллионному городу (6 городских районов). Анализировались два городских района. Данные реальные по избирательным участкам.
Сколько ошибок данных пришлось обработать!
Разработаны справочники мужских и женских имен, мужских и женских отчеств.
Фамилии являются достаточно уникальными - в справочник не встали!
Ключ: Фамилия +КодИмени+КодОтчества+годрождения+место рождения.
Вероятность повтора 1 на 5 000 000.
Попутно были найдены двойники в избирательных списках. Немного, около 100 человек.
Неправильно провели границу между участками!
Вместо года рождения лучше взять дату рождения.
За место рождения в крупном городе - считать адрес прописки родителей на момент рождения.
Идеальным, наверное является свидетельство о рождении.
Пока все. Но материала много.
С уважением.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34148086
laleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одним из важных вопросов является реализация алгоритма сравнения введенной ошибочной информации и эталонной (находящейся в справочнике.)
Структура БД (MSSQL 2000) не представляет сложностей.
Одна из трудностей - работа в реальном времени. Когда у окошка регистрации очередь более 30 человек в течение 3-4 часов. Пропускная способность 2 мин на человека. Около 100-150 человек в пиковом режиме. Документы не у всех. Документы разные.
С уважением.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34148134
laleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые модераторы!
Почему отправленные сегодня (22.11.2006 18:35-18:40 мск) сообщения задвигаются на 2-ю страницу. Нет среди актуальных ответов?
С уважением.
22.11.2006 19:10 мск
...
Рейтинг: 0 / 0
Идентификатор человека
    #34148332
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Фамилии являются достаточно уникальными - в справочник не встали!

Это ошибка.

> Ключ: Фамилия +КодИмени+КодОтчества+годрождения+место рождения.

Это принципиальная ошибка. Во-первых, составной ключ - плохо по определению. Во-вторых: отчество может отсутствовать; имен может быть несколько; для включения места рождения в ключ необходим справочник населенных пунктов [не только РФ] плюс как минимум история изменений их названий (само собой, плюс локализация и транслитерация).
...
Рейтинг: 0 / 0
Идентификатор человека
    #34148463
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется лучше примерно так:
Таблица ЛЮДИ:
1) ИД ЧЕЛОВЕКА (ГУИД)
2) ОГРН УЧРЕЖДЕНИЯ (УНИКАЛЬНЫЙ ИД УЧРЕЖДЕНИЯ)

Таблица ДОКУМЕНТЫ
1) ИД СОСТОЯНИЯ (СЧЕТЧИК)
2) ID чел в табл ЛЮДИ
3) АДРЕС (храним ID, значение из справочника)
4) ФАМИЛИЯ (храним ID....)
5) ИМЯ (храним ID....)
6) ОТЧЕСТВО (храним ID....)
7) ДАТА РОЖДЕНИЯ
8) МЕСТО РОЖДЕНИЯ (храним ID.... можно ссылка на КЛАДР)
9) ВИД ДОКУМЕНТА
10) ID последнего документа того-же вида (предыдущего паспорта, предыдущего ИНН)
11) СЕРИЯ
12) НОМЕР
13) ДАТА ВЫДАЧИ
14) документ действителен

Таблица СТАТУС
1) ID чел в табл ЛЮДИ
2) СТАТУС (ПЕНСИОНЕР,СТРУДЕНТ И Т.П.) (храним ID, значение из справочника)
3) ДАТА ПОЛУЧЕНИЯ СТАТУСА

как уже говорили выше
обязательно полная номализация, СУБД с циферками в разы лучше работает
при этом самая ёмкая таблица
Таблица ДОКУМЕНТЫ
1) int
2) int
3) int
4) int
5) int
6) int
7) date
8) int
9) int
10) int
11) char
12) char
13) date
14) bool

На любые атрибуты человека, такие как ФИО, дата рождения.. должен быть некий документ, чел не може прийти и просто сказать - я Вася... ок, Вася, так и запишем
должен быть либо паспорт, либо ИНН.... удостоверение...
Сменил чел имя => сменил паспорт.. последний актуальный документ тот, у которого дата выдачи самая поздняя и действительны, и история смены документов на лицо, сперва свидетельство о рождении, затем паспорт, ИНН, затем другой паспорт...

В туже табличку и ИНН, и пенсионное свидетельство...

Аналогично со статусом.

На счёт объединения данных:
- на рабочем месте, данные экспортируются в txt или XML (или ещё как) без всяких GUID, в полном виде, обязательно должны быть документы, на основании которых внесены данные...
<men>
<fio>Иванов....</fio>
<docum>
<type>паспорт</type>
<num>9931 231244</num>
.....
</docum>
</men>

- в центре, файл импортируется, ищются совпадения по другому никак. например ФИО и даты совпадают, сопадает номер предыдещего паспорта, но паспортные данные отличаются и более поздняя дата - значит новый паспорт...
другими словами, даже не набор правил для сравнения, а комплексный алгоритм, сравниваем по разным критериям, выставляем % совпадения... далее помечаем где вероятность менее 100% и оператор смотрит... в процессе работы, выявляются новые "правила", и совершенствуется алгоритм

в принципе ИНН или номер пенс.свид это довольно "уникальный" номер, да, он может меняться у одного человека, но не представляю, чтобы у двух разных людей в одном регионе эти номера совпали
...
Рейтинг: 0 / 0
Идентификатор человека
    #34148541
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На сегодня человека идентифицируют (при трагических событиях) по ДНК, а не по найденным документам с номерами(которые у него могли быть случайно чужие).
...
Рейтинг: 0 / 0
Идентификатор человека
    #34148544
Programmer_Ortodox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. это должна быть некая неотторгаемая и неотчуждаемая административно, сущность, присущая только конкретному индивидууму, независимо от потерянных в результате травм некоторых органов/конечностей..
...
Рейтинг: 0 / 0
Идентификатор человека
    #34148609
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однояйцевые близнецы имеют одинаковый ДНК, поэтому абсолютного способа однозначно различить двух человек не существует.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34149204
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1) ИД ЧЕЛОВЕКА (ГУИД)
вы сможете обосновать необходимость?

А то всяк БД начнут на GUID'ах строить.
Справочник носков в супермаркете
Код: plaintext
 1 ) ИД НОСКА (ГУИД)


Справочник собак в Урюпинске
Код: plaintext
 1 ) ИД Собаки (ГУИД)

ИНН - ГУИД, паспорт - ГУИД и т.д.

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Идентификатор человека
    #34149525
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> абсолютного способа однозначно различить двух человек не существует

Рисунок сетчатки глаза. Рисунок капиллярных линий ладони.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34149616
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 автор1) ИД ЧЕЛОВЕКА (ГУИД)
вы сможете обосновать необходимость?

А то всяк БД начнут на GUID'ах строить.
Справочник носков в супермаркете
Код: plaintext
 1 ) ИД НОСКА (ГУИД)


Справочник собак в Урюпинске
Код: plaintext
 1 ) ИД Собаки (ГУИД)

ИНН - ГУИД, паспорт - ГУИД и т.д.

______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!

Благодоря ГУИД мы можем загрузить все данные с другого компьютера из дбф например, а затем обработать их и привести к одному человеку например.. Иначе кроме как перебирать данные в дбф по одной записи с обработкой я не вижу.. хотя можно загрузить те что не нарушают уникальных индексов (Фио+дата рождения+место рождения например), а остальные обработать по одной..
...
Рейтинг: 0 / 0
Идентификатор человека
    #34149743
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторБлагодоря ГУИД мы можем загрузить все данные с другого компьютера из дбф например, а затем обработать их и привести к одному человеку например.. Иначе кроме как перебирать данные в дбф по одной записи с обработкой я не вижу.. хотя можно загрузить те что не нарушают уникальных индексов (Фио+дата рождения+место рождения например), а остальные обработать по одной..
приведите пример из 3 записей БД1 и 3-х записей БД2. А то болтать можно бесконечно.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Идентификатор человека
    #34150256
Кифирчик_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
База 1 - основная база (упрощённо)
---------+---------------+-------------+-------------
 men_id  | men_name      |  birth_date | pass_num
---------+---------------+-------------+-------------
134      | Николаев А.А. |  12.11.1954 | 6338 112345
135      | Петрова А.П.  |  19.01.1987 | 6543 324831
134      | Иванов В.А.   |  02.04.1978 | 7756 557956
176      | Савеленко В.В.|  09.12.1966 | 1233 123597


База 2 - переферия
---+----------+--------------+-------------+-------------
id |   men_id | men_name     |  birth_date | pass_num
---+----------+--------------+-------------+-------------
2  | NULL     | Николаев А.А.|  12.04.1954 | 6338 112345
4  | 135      | Петрова А.П. |  19.01.1987 | 6455 442648
8  | 176      | Смирнова В.В.|  09.12.1966 | 2245 994637

во 2-й базе, men_id - если не NULL значит эта запись была
импортирована из основной базы,
если NULL Тогда эти данные вновь внесённые

Импортируем...
id = 2, значение NULL, но номера паспорта совпадаюат, следовательно
это дубль
id = 4, значение 135, такое уже есть в базе, но паспорт другой, следовательно
у человека появился новый паспорт, можно глянуть на дату его получения...
id = 8, 176, такой номер есть, совпадают даты рождения, но разные фамилии и паспорта
смотрим на даты паспорта, какой-то из них более свежий
...
Рейтинг: 0 / 0
Идентификатор человека
    #34150358
Сергей Сергеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему бы не использовать в качестве идентификатора длинное целое число. Если новые данные в базу заностятся с одной точки, ну или хотя бы синхронизация данных производится довольно часто, то получишь уникальный идентификатор для каждого человека.

Сменил человек паспорт, фамилию, кличку собаке - апдейтишь данные по совокупности оставшихся признаков. Так большинство систем работают, и работают ведь. Если совсем уж не устраивает - выдавай идентификатор человеку на руки (проксимити, брелки итд), под кожу вшивай итд =) Благо технологий полно
...
Рейтинг: 0 / 0
Идентификатор человека
    #34151586
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения за offtop.

guest_20040621Рисунок сетчатки глаза. Рисунок капиллярных линий ладони.Это конечно, да. Но, допустим, глаза отсутствуют, руки тоже, например, вследствии аварии.
Кроме того, все эти варианты, так же как и ДНК должны подразумевать, что такая информация уже должна где-то храниться, чтобы можно было сравнить, что совсем не факт, хотя в свете борьбы с терроризмом во всем мире не исключено, что факт состоится. Про сетчатку глаз пока не слышал :), но отпечатки пальцев уже вроде как подделывают или по крайней мере стирают до неузнаваемости. Уверен, как только это станет актуальным в свете борьбы с нарушением privacy, процедура станет дешевой и общедоступной. Опять же не уверен, что нельзя несколько изменить рисунок сетчатки точечными манипуляциями с лазером. Да и погрешность работы сегодняшних биометрических систем пока достаточно велика, хотя точные цифры не назову. Лень шариться в гугле.
Собственно к тому, что в некоторых случаях достаточно честного слова человека, что он - это он, но если будет стоять задача обойти систему контроля, то ее рано или поздно обойдут. На эту тему есть фильм "Гаттака", хотя и сильно сдобренный художественным вымыслом.
Но даже это ерунда, иногда проще заменить информацию там, где она хранится. Как пример, все новомодные биометрические паспорта, в которых информация доступна практически в открытом виде. Точное сравнение сетчатки, отпечатков или ДНК - задачи сами по себе ресурсоемкие, поэтому для массового применения, насколько понимаю, абсолютно не годятся, по крайней мере - пока.

P.S. Еще раз sorry за неуместный треп.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34151622
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> должны подразумевать, что такая информация уже должна где-то храниться

Да не должны они ничего подразумевать. Странно, что элементарная задача вызывает столько проблем. В данном случае не стоит задача идентификации человека как биологической особи, задача - идентифицировать гражданина государства. Все. Никакой другой задачи нет. Как это можно сделать? Правильно, на основании идентификаторов, выдаваемых гражданину государства государственными же структурами. Никак иначе. Какой вид имеют эти идентификаторы, кто и как их выдает - дело десятое. Биометрические это идентификаторы или набор букв - абсолютно фиолетово.

Задача идентификации биологической особи - это совершенно другая задача. Не очевидно?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34151662
laleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное, правильная постановка задачи будет такая (где автор?).
Определения.
1. Есть событие, назовем его событием регистрации (СР). СР характеризуется набором признаков, имеет этапы. СР может быть закончена или нет. Цель СР – определить уникальность предмета среди ограниченного количества похожих предметов (похожих в смыле определенного множества признаков из набор), используя наборы признаков (идентификация). Определяющий момент – первичное СР (ПСР).
2. При ПСР предмет впервые получает набор признаков,который должен однозначно определить его как уникальный объект. Признаки могуть быть объективными, постоянными, субъективными, меняющимися. Набор признаков может быть пустым, состоять из одного или нескольких элементов.
3. Вторичным СР (ВСР) назовем любое СР, следующее по времени за ПСР.
4. ВСР предполагает, что набор признаков полученных при ПСР существует и используется при идентификации.
5. Конечное СР (КСР). Событие регистрации обратное ПСР.
6. Набор признаков. Признаки должны быть объективными. Признаки должны иметь систему отсчета, измерений одинаковую для всех предметов, проходящих идентификацию. Количество признаков –ограничено.
7. Самое важное: идентификация должна проводиться по формальным алгоритмам сравнения, доступным современным компьютерным программам.

Задача.
Определить набор признаков для ПСР , ВСР, КСР.
Определить, какие признаки из набора, их комбинации является необходимыми для идентификации при ПСР , ВСР, КСР.

По моему, вся наука до сих пор не решила эту задачу.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34152095
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 laleks: Автор переваривал все вышенаписанное.. :)

Ваши мысли заставили меня переосмыслить структуру, сэнкс Кифирчик, но я думаю нормализация хороша только до определенной степени и не является самоцелью..
Думаю так:

Таблица ЛЮДИ:
1) ИД ЧЕЛОВЕКА
2) ФАМИЛИЯ
3) ИМЯ
4) ОТЧЕСТВО
5) ДАТА РОЖДЕНИЯ
6) МЕСТО РОЖДЕНИЯ
7) СНИЛС

Таблица ДОКУМЕНТЫ
1) ИД ДОКУМЕНТА
2) ИД ЧЕЛОВЕКА (ИЗ ЛЮДИ)
3) ВИД ДОКУМЕНТА
4) СЕРИЯ
5) НОМЕР
6) ДАТА ВЫДАЧИ
7) КЕМ ВЫДАН

Таблица РАБОТА
1) ИД РАБОТЫ
2) ИД ЧЕЛОВЕКА (ИЗ ЛЮДИ)
3) КОД СТРАХОВОЙ КОМПАНИИ
4) СЕРИЯ ПОЛИСА
5) НОМЕР ПОЛИСА
6) ДАТА ВЫДАЧИ ПОЛИСА
7) МЕСТО ЖИТЕЛЬСТВА
8) МЕСТО РАБОТЫ
9) СОЦИАЛЬНЫЙ СТАТУС

Таблица ПОСЕЩЕНИЯ
1) ИД ПОСЕЩЕНИЯ
2) ИД ДОКУМЕНТА (ИЗ ДОКУМЕНТЫ)
3) ИД РАБОТЫ (ИЗ РАБОТА)
4) ДАТА ОБРАЩЕНИЯ
4) ПРИЧИНА
5) РЕЗУЛЬТАТ

Таким образом мы получаем испорию документов: свид-во о рождении, паспорт1, паспорт2 и по дате выдачи можем определить последний..
Все остальные данные не влияющие на смену документа вынесены в таблицу РАБОТА: например смена полиса или адреса или статуса не вызывает замену паспорта, однако смена адреса, статуса или места работы вызывает замену полиса..

Я специально не показывал тип идентификатора - думаю мне пока важнее определиться со структурой БД, а уже потом решить какие типы идентификаторов использовать..

Более глубокую разбивку считаю нецелесообразной, т.к. это существенно затруднит работу с данными и разработку отчетов, тем более, что таблица ПОСЕЩЕНИЯ так-же имеет 4 подчиненных таблицы (пока :) )
...
Рейтинг: 0 / 0
Идентификатор человека
    #34152122
Кифирчик_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Schwan
Скажите, а на какие объёмы вы делаете систему? сколько примерно "человек"?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34152656
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laleksПочему отправленные сегодня (22.11.2006 18:35-18:40 мск) сообщения задвигаются на 2-ю страницу.
Далеко не всем понравится идея читать тему снизу вверх.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34154465
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кифирчик_to Schwan
Скажите, а на какие объёмы вы делаете систему? сколько примерно "человек"?

В учреждениях (P4 или Celeron D):
Людей: 10-200 тыс. (зависит от учреждения)
Посещений: 50-1000 тыс (в год)
По территории (2xXeon 3,0GHz):
Людей: 1,5-2 млн
Посещений: около 10 млн (в год)

Предполагается накапливать данные несколько лет...
...
Рейтинг: 0 / 0
Идентификатор человека
    #34154652
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неувязочка..
...
7) МЕСТО ЖИТЕЛЬСТВА
8) МЕСТО РАБОТЫ
9) СОЦИАЛЬНЫЙ СТАТУС
...
мне кажется, что место работы связанно с социальным статутом косвенно,
человек, учясь в институте, может работать системным администратором наример...
какой у него соц. статус? а когда он закончил институт и работатет тамже?
вы не отследите чётко когдаменяется статус
да и мед.полис могут менять не один раз на одной работе,
а если на двух работах одновременно? не два же полюса будут делать? и страховые компании могут быть разными

авторЯ специально не показывал тип идентификатора - думаю мне пока важнее определиться со структурой БД, а уже потом решить какие типы идентификаторов использовать.
ИМХО длинное целое, или просто целое, либо счётчик в таблице, либо извратиться, и сперва, например ставить год рождения :) например 1973ХХХХХХ


авторБолее глубокую разбивку считаю нецелесообразной, т.к. это существенно затруднит работу с данными и разработку отчетов, тем более, что таблица ПОСЕЩЕНИЯ так-же имеет 4 подчиненных таблицы (пока :) )
ой зря вы так, при ваших-то объёмах... всё, что может повториться, должно быть вынесено в отдельный справочник, вы этим увеличите производительность, думаю не совру, если скажу что на 40...60% и уменьшите объёмы данных, и отчёты в разы быстрее генериться будут

маленький пример:
как-то парился с тел справочником, то, что было - плоская таблица (~10тыс записей, Access)
объём - ~2 метра
после нормализации, где я просто для улиц отдельную таблицу вынес, объём уменьшился до 600кб
а можно было бы ещё и именами и фамилиями заняться :)
так было всего 10тыс записей!!!! а если 500тыс?

с данными работать будет не сложнее, все сложности решаются средствами СУБД, например вьюхами и процедурками

ещё вам просто прописанны:
- набор таблиц аля-КЛАДР
- набор таблиц "ХОЗЯЙСТВУЮЩИЕ СУБЪЕКТЫ" (место работы, страховые компании...)

хотя решать конечно вам

и хотябы базку со справочниками в интернет выставить, очень упростит синхронизацию и актуализацию...
а лучше всю базу, DB account+VPN+ЭЦП - думаю достаточно безопасно

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

может стоить придать записям статус..
- "новая" - как ввели в учреждении
- "к обработке" - как получили из учреждения
ПРОВЕРКА
- "ошибочная" - с указанием ошибки, отправляется опять на места для уточнения
- "верная" - когда всё нормально обработалось, тоже можно послать об этом уведомление

PS вы случаем не новый вариант "Катарсиса" делаете?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34154891
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Людей: 1,5-2 млн

Офигеть. Куда катится эта страна?...
...
Рейтинг: 0 / 0
Идентификатор человека
    #34155917
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поздновато, но 5 копеек: свидетельство о рождении - у меня их 2 - так
получилось.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Идентификатор человека
    #34158675
strelets12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Настоятельно советую хранить и пол человека тоже.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34159022
Waytac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если вернуться к первому топику, то основная задача - это идентификация человека в любое врем и в любом месте. Т.е., если появилса какой то человек, то нужно определить есть ли он уже в Базе или нет. Если есть, то определяется его ID, если нет, то присваиваетс новый ID.
Вся остальная информация (работа, посещения и т.п.) вешается уже на этот ID.
Поэтому попробую описать свои мысли:
----
1. Исходим из того, что БД имеет иерархическую структуру. Т.е. есть некое Центральное хранилище (ЦХ), где есть все данные и подчиненные БД. Между этими БД и ЦХ регулярно проводятся процедуры по обмену данными. Процедуры идентификации и правила обмена общие и единые для всей системы.
2. При появлении человека с каким-то набором документов запускается процедура идентификации по этому набору.
3. Если человек идентифицирован, то набор документов с которыми он пришел, заносится в БД (если эти документов ещё нет или они изменены), человеку сопостовляется имеющийся в БД ID и далее вся работа идёт по этому ID. Добавленные/измененные реквизиты отправляются в ЦХ для уточнения данных. Возможно по этим данным может быть запущена процедура слияния с другим человеком, если выявится дублирование.
4. Если человек не идентифицирован, то набор документов с которыми он пришел, заносится в БД, человеку присваивается временный ID и далее вся работа идёт по этому ID.
5. При получении ЦХ временного ID со своими данными запускается процедура поиска по данным. Если подтверждается информация, что это новый чел., то ему присваивается постоянный ID и он спускается "вниз". Если человек найден, то "вниз" спускается найденный ID.
----

Упрощённо получаем такую структуру:

Таблица ЛЮДИ:
1) ИД ЧЕЛОВЕКА
2) ФАМИЛИЯ
3) ИМЯ
4) ОТЧЕСТВО
5) ДАТА РОЖДЕНИЯ
6) МЕСТО РОЖДЕНИЯ
7) Реквизит 1
...
N) Реквизит N

Таблица ДОКУМЕНТЫ
1) ИД ДОКУМЕНТА
2) ИД ЧЕЛОВЕКА (ИЗ ЛЮДИ)
3) ТИП (ВИД) ДОКУМЕНТА
4) ДАТА ВЫДАЧИ
5) Реквизит 1
...
N) Реквизит N

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

Таблица ДОКУМЕНТЫ служит для накопления данных по разным источникам. Документы одного Типа должны отличаться датой или реквизитами. Пример типов: Паспорт; ФИО; Место фактического проживания и т.д. и т.п.
Реквизит одного номера и одного типа документа должны говорить об одном. ИМХО, но реквизитов 5 должно хватить на все виды документов.

В общем, как писал Кифирчик, главное разработать правила для процедуры идентификации и репликаций баз данных.

Получилось длинно и немного сумбурно, поэтому прошу ногами не бить. :)
...
Рейтинг: 0 / 0
Идентификатор человека
    #34159147
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не осилил последние страницы, но если подойти чисто теоритически:
есть первичный ключ, есть уникальные (или альтернативные ключи).
Для первичного - лучше GUID-а ничего нет.
Если удается найти хороший уникальный ключ - отлично, пусть он служит как стандартное ограничение, но не используйте его в качестве первичного . Если не удается - путь только один анализ конфликтов репликации.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34159220
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Для первичного - лучше GUID-а ничего нет.

Почему, можно поинтересоваться (в предположении, что RFC4122 и SQL-2003 автор осилил)?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34159290
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strelets12Настоятельно советую хранить и пол человека тоже.

на момент рождения или текущий ?
...
Рейтинг: 0 / 0
Идентификатор человека
    #34159736
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Для первичного - лучше GUID-а ничего нет.
Почему, можно поинтересоваться (в предположении, что RFC4122 и SQL-2003 автор осилил)?
По различным причинам, которые неоднократно обсуждались. Как основная - ничтожно малая вероятность проблем с репликацией и отстутсвие необходимости распределения диапазонов по серверам (как в случае с identity). Впрочем и у GUID-а тоже есть недостатки, но на сегодняшний день это, пожалуй, наилучший вариант для ПК. Если вы знаете более лучший, буду признателен за его обнародование.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34159849
Schwan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strelets12Настоятельно советую хранить и пол человека тоже.

Да пол будет в таблице ЛЮДИ обязательно..
...
Рейтинг: 0 / 0
Идентификатор человека
    #34159924
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник guest_20040621> Для первичного - лучше GUID-а ничего нет.
Почему, можно поинтересоваться (в предположении, что RFC4122 и SQL-2003 автор осилил)?
По различным причинам, которые неоднократно обсуждались. Как основная - ничтожно малая вероятность проблем с репликацией и отстутсвие необходимости распределения диапазонов по серверам (как в случае с identity). Впрочем и у GUID-а тоже есть недостатки, но на сегодняшний день это, пожалуй, наилучший вариант для ПК. Если вы знаете более лучший, буду признателен за его обнародование.
автор вроде сказал, что репликации и центральной БД у него не будет. Без этого ГУИД не нужен.
...
Рейтинг: 0 / 0
Идентификатор человека
    #34159962
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> По различным причинам, которые неоднократно обсуждались.

Видимо, без меня. Их можно еще раз сформулировать?

> Как основная - ничтожно малая вероятность проблем с репликацией
> и отстутсвие необходимости распределения диапазонов по серверам

Проблема легко решается традиционными способами.

Применительно к данному случаю UUID вреден как минимум по трем причинам: 1. необходим идентификатор источника данных, и его в случае использования UUID потребуется указывать явно; 2. жуткий оверхед, который в данном случае ничем не оправдан: берем калькулятор и считаем, во что обойдется использование UUID + идентификатор источника вместо int8 (например); 3. абсолютная непереносимость.

Так что по поводу "лучше" я бы не был так категоричен. Возможно, лучше, когда источники данных независимы (и то с оговорками), но не в данном случае.
...
Рейтинг: 0 / 0
79 сообщений из 79, показаны все 4 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Идентификатор человека
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]