powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Идентификация по снилс
14 сообщений из 14, страница 1 из 1
Идентификация по снилс
    #38688524
blackovskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток. Я только начинаю изучать MySQL и хочу построить БД по сотрудникам. Начал набрасывать идентификацию, которую решил построить на СНИЛС, так как в моей организации он обязателен. Посмотрев много видеоматериалов в которых предлагается брать за id XXX-XXX-XXX YY снилс, но тут вдруг наткнулся на статью, в которой дается математическая расшифровка этой комбинации а именно: Страховой номер индивидуального лицевого счета страхового свидетельства обязательного пенсионного страхования(он же СНИЛС) проверяется на валидность контрольным числом. СНИЛС имеет вид: «XXX-XXX-XXX YY», где XXX-XXX-XXX — собственно номер, а YY — контрольное число. Алгоритм формирования контрольного числа СНИЛС таков:

1) Проверка контрольного числа Страхового номера проводится только для номеров больше номера 001-001-998

2) Контрольное число СНИЛС рассчитывается следующим образом:

2.1) Каждая цифра СНИЛС умножается на номер своей позиции (позиции отсчитываются с конца)

2.2) Полученные произведения суммируются

2.3) Если сумма меньше 100, то контрольное число равно самой сумме

2.4) Если сумма равна 100 или 101, то контрольное число равно 00

2.5) Если сумма больше 101, то сумма делится по остатку на 101 и контрольное число определяется остатком от деления аналогично пунктам 2.3 и 2.4

ПРИМЕР: Указан СНИЛС 112-233-445 95
Проверяем правильность контрольного числа:
цифры номера 1 1 2 2 3 3 4 4 5
номер позиции 9 8 7 6 5 4 3 2 1
Сумма = 1×9 + 1×8 + 2×7 + 2×6 + 3×5 + 3×4 + 4×3 + 4×2 + 5×1 = 95
95 ÷ 101 = 0, остаток 95.
Контрольное число 95 — указано верно
Данный алгоритм не способен обнаружить все случаи ошибок в одной цифре (например, номера 087-654-303 00 и 087-654-302 00 отличаются одной цифрой, но оба будут признаны верными). Также не во всех случаях может быть обнаружена ошибка перестановки двух соседних цифр (например, 087-654-303 00 и 086-754-303 00). Причина - пункт 2.4, где для близких чисел 100 и 101 установлено одинаковое контрольное число 00.

Если бы вместо пунктов 2.4, 2.5 применялся пункт

2.4') Если сумма равна или больше 100, то контрольное число равно двум последним цифрам этой суммы (остатку от деления суммы на 100),

то алгоритм был бы способен обнаружить все случаи ошибок в одной цифре и все случаи ошибочной перестановки двух соседних цифр. Проверил множество СНИЛС сотрудников и оказалось чистейшей правдой, и как после такого действовать? принять за ID суррогатный ключ, а куда девать номер???? разбивать его на числа и просто хранить их каждое в отдельном столбце, и использовать только для проверки правила??
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38688529
blackovskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суррогатный ID я думаю представить так: надеюсь файл откроется у Вас. посмотрите поправьте меня если ннеправ
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38688542
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blackovskiy,

Используйте автоинкрементальный интегер
в качестве первичного ключа и не морочьте
себе тестикулы.
Если надо , поставьте уникальный ключ на снилс.
Приведеннся математика нужна что бы проверять
значени снилс на вставке.
к ключу это не имеет отношение.
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38688666
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blackovskiyидентификацию, которую решил построить на СНИЛСне понимаю, что ты называешь идентификацией... идентифицировать человека? ради бога, СНИЛСы не повторяются... использовать их как первичный ключ? глупо, строки медленно обрабатываются, возьми автоинкремент... что-то ещё? уточни, что...
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38688685
blackovskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, А можно тогда поинтересоваться как это будет в логической схеме, если несложно. вкратце что есть основной идентификатор, а какие данные это просто масса данных привязываемых к уникальному значению. Я имею виду: № снилс к нему автоинкримент который будет являться уникальным, а все остальные данный которые будет иметь id снилс такие как ФИО, пасплотныые данные, данные других документов будут иметь тот же ID что и снилс? как в дальнейшем поиск к примеру данных паспорта гражданина Иванова Ивана Ивановича со снилсом xxx-xxx-xxx yy имеющим id 00000001 будет осуществляться? как именно к этому id привязывать все остальное? В 2х словах, если не трудно
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38688696
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blackovskiyчто есть основной идентификаторПонятия не имею... в терминах SQL такого не имеется.
blackovskiyВ 2х словах, если не трудноНе трудно... RTFM "Анализ предметной области".
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38688765
blackovskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Прочтем и будем надеяться что поймем!!!!
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38688819
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у тебя выбора нет. Без знания основ что-то делать - не получится. Или получится дэрмо...
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38689142
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaСНИЛСы не повторяютсяЗато у человека может внезапно оказаться два разных СНИЛС-а.
javajdbcИспользуйте автоинкрементальный интегер
в качестве первичного ключа и не морочьте
себе тестикулы.
Если надо , поставьте уникальный ключ на снилс.
Приведеннся математика нужна что бы проверять
значени снилс на вставке.
к ключу это не имеет отношение.+1
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38689867
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftAkinaСНИЛСы не повторяютсяЗато у человека может внезапно оказаться два разных СНИЛС-а.
Угу... вот как у меня, например. Но решения обратной задачи я и не предлагал.
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38690126
blackovskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Не подумайте что ленив, просто если есть возможность может посоветуете где есть интересный материал по данному поводу, так что бы доступным языком описано было. Нет можно конечно просто гуглить, но если Вам встречался интересный материальчик можно ссылочку.
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38691121
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ммм... Пардон, уточните, по какому именно поводу...
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38691150
blackovskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

RTFM "Анализ предметной области". по такой абривиатуре вообще ничего не выдает
...
Рейтинг: 0 / 0
Идентификация по снилс
    #38691174
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blackovskiyAkina,

RTFM "Анализ предметной области". по такой абривиатуре вообще ничего не выдает


Так как не очень понятно чего вам не понятно,
то попробуем дать ссылку на основы:

http://habrahabr.ru/post/193136/

и обязательно вот это:

http://lurkmore.to/RTFM
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Идентификация по снилс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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