|
|
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Мне кажется лучше примерно так: Таблица ЛЮДИ: 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% и оператор смотрит... в процессе работы, выявляются новые "правила", и совершенствуется алгоритм в принципе ИНН или номер пенс.свид это довольно "уникальный" номер, да, он может меняться у одного человека, но не представляю, чтобы у двух разных людей в одном регионе эти номера совпали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2006, 22:46 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
На сегодня человека идентифицируют (при трагических событиях) по ДНК, а не по найденным документам с номерами(которые у него могли быть случайно чужие). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 00:36 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Т.е. это должна быть некая неотторгаемая и неотчуждаемая административно, сущность, присущая только конкретному индивидууму, независимо от потерянных в результате травм некоторых органов/конечностей.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 00:38 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Однояйцевые близнецы имеют одинаковый ДНК, поэтому абсолютного способа однозначно различить двух человек не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 02:20 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
автор1) ИД ЧЕЛОВЕКА (ГУИД) вы сможете обосновать необходимость? А то всяк БД начнут на GUID'ах строить. Справочник носков в супермаркете Код: plaintext Справочник собак в Урюпинске Код: plaintext ИНН - ГУИД, паспорт - ГУИД и т.д. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 10:53 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
> абсолютного способа однозначно различить двух человек не существует Рисунок сетчатки глаза. Рисунок капиллярных линий ладони. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 11:50 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Petro123 автор1) ИД ЧЕЛОВЕКА (ГУИД) вы сможете обосновать необходимость? А то всяк БД начнут на GUID'ах строить. Справочник носков в супермаркете Код: plaintext Справочник собак в Урюпинске Код: plaintext ИНН - ГУИД, паспорт - ГУИД и т.д. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! Благодоря ГУИД мы можем загрузить все данные с другого компьютера из дбф например, а затем обработать их и привести к одному человеку например.. Иначе кроме как перебирать данные в дбф по одной записи с обработкой я не вижу.. хотя можно загрузить те что не нарушают уникальных индексов (Фио+дата рождения+место рождения например), а остальные обработать по одной.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 12:04 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
авторБлагодоря ГУИД мы можем загрузить все данные с другого компьютера из дбф например, а затем обработать их и привести к одному человеку например.. Иначе кроме как перебирать данные в дбф по одной записи с обработкой я не вижу.. хотя можно загрузить те что не нарушают уникальных индексов (Фио+дата рождения+место рождения например), а остальные обработать по одной.. приведите пример из 3 записей БД1 и 3-х записей БД2. А то болтать можно бесконечно. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 12:28 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 14:08 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Почему бы не использовать в качестве идентификатора длинное целое число. Если новые данные в базу заностятся с одной точки, ну или хотя бы синхронизация данных производится довольно часто, то получишь уникальный идентификатор для каждого человека. Сменил человек паспорт, фамилию, кличку собаке - апдейтишь данные по совокупности оставшихся признаков. Так большинство систем работают, и работают ведь. Если совсем уж не устраивает - выдавай идентификатор человеку на руки (проксимити, брелки итд), под кожу вшивай итд =) Благо технологий полно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 14:25 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за offtop. guest_20040621Рисунок сетчатки глаза. Рисунок капиллярных линий ладони.Это конечно, да. Но, допустим, глаза отсутствуют, руки тоже, например, вследствии аварии. Кроме того, все эти варианты, так же как и ДНК должны подразумевать, что такая информация уже должна где-то храниться, чтобы можно было сравнить, что совсем не факт, хотя в свете борьбы с терроризмом во всем мире не исключено, что факт состоится. Про сетчатку глаз пока не слышал :), но отпечатки пальцев уже вроде как подделывают или по крайней мере стирают до неузнаваемости. Уверен, как только это станет актуальным в свете борьбы с нарушением privacy, процедура станет дешевой и общедоступной. Опять же не уверен, что нельзя несколько изменить рисунок сетчатки точечными манипуляциями с лазером. Да и погрешность работы сегодняшних биометрических систем пока достаточно велика, хотя точные цифры не назову. Лень шариться в гугле. Собственно к тому, что в некоторых случаях достаточно честного слова человека, что он - это он, но если будет стоять задача обойти систему контроля, то ее рано или поздно обойдут. На эту тему есть фильм "Гаттака", хотя и сильно сдобренный художественным вымыслом. Но даже это ерунда, иногда проще заменить информацию там, где она хранится. Как пример, все новомодные биометрические паспорта, в которых информация доступна практически в открытом виде. Точное сравнение сетчатки, отпечатков или ДНК - задачи сами по себе ресурсоемкие, поэтому для массового применения, насколько понимаю, абсолютно не годятся, по крайней мере - пока. P.S. Еще раз sorry за неуместный треп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 19:46 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
> должны подразумевать, что такая информация уже должна где-то храниться Да не должны они ничего подразумевать. Странно, что элементарная задача вызывает столько проблем. В данном случае не стоит задача идентификации человека как биологической особи, задача - идентифицировать гражданина государства. Все. Никакой другой задачи нет. Как это можно сделать? Правильно, на основании идентификаторов, выдаваемых гражданину государства государственными же структурами. Никак иначе. Какой вид имеют эти идентификаторы, кто и как их выдает - дело десятое. Биометрические это идентификаторы или набор букв - абсолютно фиолетово. Задача идентификации биологической особи - это совершенно другая задача. Не очевидно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 20:11 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Наверное, правильная постановка задачи будет такая (где автор?). Определения. 1. Есть событие, назовем его событием регистрации (СР). СР характеризуется набором признаков, имеет этапы. СР может быть закончена или нет. Цель СР – определить уникальность предмета среди ограниченного количества похожих предметов (похожих в смыле определенного множества признаков из набор), используя наборы признаков (идентификация). Определяющий момент – первичное СР (ПСР). 2. При ПСР предмет впервые получает набор признаков,который должен однозначно определить его как уникальный объект. Признаки могуть быть объективными, постоянными, субъективными, меняющимися. Набор признаков может быть пустым, состоять из одного или нескольких элементов. 3. Вторичным СР (ВСР) назовем любое СР, следующее по времени за ПСР. 4. ВСР предполагает, что набор признаков полученных при ПСР существует и используется при идентификации. 5. Конечное СР (КСР). Событие регистрации обратное ПСР. 6. Набор признаков. Признаки должны быть объективными. Признаки должны иметь систему отсчета, измерений одинаковую для всех предметов, проходящих идентификацию. Количество признаков –ограничено. 7. Самое важное: идентификация должна проводиться по формальным алгоритмам сравнения, доступным современным компьютерным программам. Задача. Определить набор признаков для ПСР , ВСР, КСР. Определить, какие признаки из набора, их комбинации является необходимыми для идентификации при ПСР , ВСР, КСР. По моему, вся наука до сих пор не решила эту задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2006, 20:35 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
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 подчиненных таблицы (пока :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 08:20 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
to Schwan Скажите, а на какие объёмы вы делаете систему? сколько примерно "человек"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 08:36 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
laleksПочему отправленные сегодня (22.11.2006 18:35-18:40 мск) сообщения задвигаются на 2-ю страницу. Далеко не всем понравится идея читать тему снизу вверх. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 11:03 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Кифирчик_to Schwan Скажите, а на какие объёмы вы делаете систему? сколько примерно "человек"? В учреждениях (P4 или Celeron D): Людей: 10-200 тыс. (зависит от учреждения) Посещений: 50-1000 тыс (в год) По территории (2xXeon 3,0GHz): Людей: 1,5-2 млн Посещений: около 10 млн (в год) Предполагается накапливать данные несколько лет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 17:22 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
неувязочка.. ... 7) МЕСТО ЖИТЕЛЬСТВА 8) МЕСТО РАБОТЫ 9) СОЦИАЛЬНЫЙ СТАТУС ... мне кажется, что место работы связанно с социальным статутом косвенно, человек, учясь в институте, может работать системным администратором наример... какой у него соц. статус? а когда он закончил институт и работатет тамже? вы не отследите чётко когдаменяется статус да и мед.полис могут менять не один раз на одной работе, а если на двух работах одновременно? не два же полюса будут делать? и страховые компании могут быть разными авторЯ специально не показывал тип идентификатора - думаю мне пока важнее определиться со структурой БД, а уже потом решить какие типы идентификаторов использовать. ИМХО длинное целое, или просто целое, либо счётчик в таблице, либо извратиться, и сперва, например ставить год рождения :) например 1973ХХХХХХ авторБолее глубокую разбивку считаю нецелесообразной, т.к. это существенно затруднит работу с данными и разработку отчетов, тем более, что таблица ПОСЕЩЕНИЯ так-же имеет 4 подчиненных таблицы (пока :) ) ой зря вы так, при ваших-то объёмах... всё, что может повториться, должно быть вынесено в отдельный справочник, вы этим увеличите производительность, думаю не совру, если скажу что на 40...60% и уменьшите объёмы данных, и отчёты в разы быстрее генериться будут маленький пример: как-то парился с тел справочником, то, что было - плоская таблица (~10тыс записей, Access) объём - ~2 метра после нормализации, где я просто для улиц отдельную таблицу вынес, объём уменьшился до 600кб а можно было бы ещё и именами и фамилиями заняться :) так было всего 10тыс записей!!!! а если 500тыс? с данными работать будет не сложнее, все сложности решаются средствами СУБД, например вьюхами и процедурками ещё вам просто прописанны: - набор таблиц аля-КЛАДР - набор таблиц "ХОЗЯЙСТВУЮЩИЕ СУБЪЕКТЫ" (место работы, страховые компании...) хотя решать конечно вам и хотябы базку со справочниками в интернет выставить, очень упростит синхронизацию и актуализацию... а лучше всю базу, DB account+VPN+ЭЦП - думаю достаточно безопасно и ещё... а если будет такая ситуация, в учреждении ошибаются с вводом, например с именем, года рождения... - чел, определяется, как новенький, и нет связи с его предыдущими посещениями - данные могут дублироваться с кем-нибудь, дата паспорта более поздняя...запись как двойник удаляется, и.. "а такого чела вообще к нам не приходило..." может стоить придать записям статус.. - "новая" - как ввели в учреждении - "к обработке" - как получили из учреждения ПРОВЕРКА - "ошибочная" - с указанием ошибки, отправляется опять на места для уточнения - "верная" - когда всё нормально обработалось, тоже можно послать об этом уведомление PS вы случаем не новый вариант "Катарсиса" делаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 18:35 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
> Людей: 1,5-2 млн Офигеть. Куда катится эта страна?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 20:59 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Поздновато, но 5 копеек: свидетельство о рождении - у меня их 2 - так получилось. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2006, 14:11 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Настоятельно советую хранить и пол человека тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 17:39 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
Если вернуться к первому топику, то основная задача - это идентификация человека в любое врем и в любом месте. Т.е., если появилса какой то человек, то нужно определить есть ли он уже в Базе или нет. Если есть, то определяется его 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 должно хватить на все виды документов. В общем, как писал Кифирчик, главное разработать правила для процедуры идентификации и репликаций баз данных. Получилось длинно и немного сумбурно, поэтому прошу ногами не бить. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 19:45 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
не осилил последние страницы, но если подойти чисто теоритически: есть первичный ключ, есть уникальные (или альтернативные ключи). Для первичного - лучше GUID-а ничего нет. Если удается найти хороший уникальный ключ - отлично, пусть он служит как стандартное ограничение, но не используйте его в качестве первичного . Если не удается - путь только один анализ конфликтов репликации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 21:10 |
|
||
|
Идентификатор человека
|
|||
|---|---|---|---|
|
#18+
> Для первичного - лучше GUID-а ничего нет. Почему, можно поинтересоваться (в предположении, что RFC4122 и SQL-2003 автор осилил)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 22:26 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34149204&tid=1544870]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 469ms |

| 0 / 0 |
