|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
Добрый день, джентельмены! Имеется таблица: ID - счетчик FName - nvarchar SName - nvarchar TName - nvarchar PassSer - int PassNum - int IDPrev - int Для однозначной идентификации человека и недопущения дублей решено сделать составной уникальный индекс по этим полям (кроме ID, IDPrev конечно). Все бы ничего, но на просторах нашей страны, встречаются люди у которых отчество отсутствует, как класс. При этом в поле отчества заносится NULL. Как отнесется сервер к такой ситуации? Удастся ли вставить запись с другими ФИО, но с NULL в отчестве? После беглого чтения BOL создается впечатление, что так сделать будет нельзя. Ситуацию, что человек сменил паспорт(утерял, поменял и т.д.) решает оператор, устанавливая поле IDPrev на предыдущую запись с таким ФИО или оставляет NULL. Т.е. при смене паспорта изначально считаем человека новым в этой базе. Сервер 2008 R2 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 09:34 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
edward_sh, странноватый мягко говоря, подход. ID гражданина нет в РФ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 10:26 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
edward_sh Добрый день, джентельмены! Имеется таблица: ID - счетчик FName - nvarchar SName - nvarchar TName - nvarchar PassSer - int PassNum - int IDPrev - int Для однозначной идентификации человека и недопущения дублей решено сделать составной уникальный индекс по этим полям (кроме ID, IDPrev конечно). Все бы ничего, но на просторах нашей страны, встречаются люди у которых отчество отсутствует, как класс. При этом в поле отчества заносится NULL. Как отнесется сервер к такой ситуации? Удастся ли вставить запись с другими ФИО, но с NULL в отчестве? После беглого чтения BOL создается впечатление, что так сделать будет нельзя. Ситуацию, что человек сменил паспорт(утерял, поменял и т.д.) решает оператор, устанавливая поле IDPrev на предыдущую запись с таким ФИО или оставляет NULL. Т.е. при смене паспорта изначально считаем человека новым в этой базе. Сервер 2008 R2 Создать тестовую таблицу и вставить в нее записи займет 10 минут. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 10:32 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
edward_sh, Реально, взять и проверить быстрее, чем писать вопрос на форуме Код: sql 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. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 10:37 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
edward_sh Для однозначной идентификации человека и недопущения дублей Вы удивитесь, узнав как много в России полных тезок! Расширяйте ваш уникальный индекс хотя бы добавив ИНН. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 11:37 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
SQL2008 хотя бы добавив ИНН Просто ИНН уже достаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 11:39 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
msLex SQL2008 хотя бы добавив ИНН Просто ИНН уже достаточно. У некоторых его попросту нет. Конечно и в этом случае есть вероятность напороться на полное совпадение ФИО + пустой ИНН. Но все-таки гораздо реже чем просто ФИО. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 13:25 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
Говоря "нет ИНН" я имел в виду, что не знает и не особо старается его узнать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 13:26 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
SQL2008 msLex пропущено... Просто ИНН уже достаточно. У некоторых его попросту нет. Конечно и в этом случае есть вероятность напороться на полное совпадение ФИО + пустой ИНН. Но все-таки гораздо реже чем просто ФИО. В этом случае, правильнее сделать два фильтрованных индекса По Инн, когда он есть, и по прочим полям, когда его нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 13:29 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
SQL2008 Говоря "нет ИНН" я имел в виду, что не знает и не особо старается его узнать. Значит ему достаточно помочь, запросив соответствующую систему самостоятельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 13:47 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
ИНН гарантирует некую уникальность в некотором промежутке времени. Человек переехал из одного района города в другой - ИНН сменился... Была мысль использовать СНИЛС, запретили ведомственным указом требовать дополнительные документы. Оно конечно можно попробовать, но на ровном месте отгребать пилюлей - не хочется... Запрос ИНН - кто будет этим заниматься, оно им надо? По ссылке https://docs.microsoft.com/ru-ru/sql/relational-databases/indexes/create-unique-indexes?view=sql-server-ver15 говорится: Нельзя создать уникальный индекс для одного столбца, если в более чем одной строке этого столбца содержится значение NULL. Нельзя также создать уникальный индекс для нескольких столбцов, если в более чем одной строке такой комбинации столбцов содержится значение NULL. При индексировании такие значения будут рассматриваться как дубликаты. Откуда и растут ноги вопроса... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 14:51 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
Добавить к полному имени дату+город рождения - будет уникальность. Иначе тёзки достанут. Местная полиция считает полное имя плюс дату достаточным идентификатором для своих целей. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 14:54 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
edward_sh Человек переехал из одного района города в другой - ИНН сменился... Что? https://www.nalog.ru/rn77/fl/interest/inn/ ИНН физического лица ИНН — идентификационный номер налогоплательщика. Он присваивается один раз, используется на всей территории РФ и не меняется, даже если налогоплательщик меняет место жительства, фамилию и другие паспортные данные. При желании в любой налоговой инспекции можно получить Свидетельство о постановке на учет физического лица. edward_sh Нельзя создать уникальный индекс для одного столбца, если в более чем одной строке этого столбца содержится значение NULL Можно. Фильтрованный. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 14:56 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
edward_sh Нельзя создать уникальный индекс для одного столбца, если в более чем одной строке этого столбца содержится значение NULL. Откуда и растут ноги вопроса... Страдалец, тут написано: " NULL NULL это не уникально. " Что, в общем то, очевидно. Однако поля уникального индекса МОГУТ содержать значение NULL. Только Primary key поражен в правах. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 15:04 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
НеофитSQL Местная полиция считает полное имя плюс дату достаточным идентификатором для своих целей. Есть прецеденты, когда совпадало все и ФИО, и дата рождения! Обычно это выявлялось в аэропорту с билетами на руках... Бац! А человек оказывается в розыске! Отпуск насмарку, билеты пропали, подруга в слезах... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 15:44 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
To SQL2008: Не далее, чем пару-тройку месяцев назад, при вводе списка групп на обучение, выявились В ОДНОЙ группе ПОЛНЫЕ тезки, включая дату рождения. Один был с юга, второй с севера области... To MsLex: Возможно, что что-то изменилось. Но когда я 15 лет назад сменил район проживания в пределах одного города, меня очень настойчиво попросили прийти в районную налоговую и поменять ИНН... Хотя за давностью лет, могу и попутать что-то... To Aleks222: Если бы в приведенной мною ссылке (официальной, если что) было бы об этом сказано, то и такого глупого вопроса я бы не задавал. Вся проблема в том, что не все нюансы описаны в документации, и приходится выяснять это у благородного сообщества. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 16:30 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
To MsLex: https://spmag.ru/articles/menyaetsya-li-inn-pri-smene-mesta-zhitelstva Вопрос со свидетельством нужно рассмотреть подробнее. Дело в том, что на образце этого документа от 2004 года указан перечень случаев, когда нужно поменять свидетельство. В этом списке числится также и переезд на новое место проживания на другую территорию, то есть туда, где учет будет осуществляться другим подразделением. Но при этом сама налоговая не требует этого от граждан, в своих пояснениях она говорит, что замена ИНН, при смене места жительства в том числе, не предусмотрена, ни в статье 23 НК РФ, ни в Порядке присвоения и выдачи ИНН. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 16:45 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
SQL2008 edward_sh Для однозначной идентификации человека и недопущения дублей Вы удивитесь, узнав как много в России полных тезок! С одним и тем же номером и серией паспорта? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 16:47 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
ИНН не меняется при переезде, но в принципе он может изменяться в каких-то случаях. В качестве идентификатора нужно использовать СНИЛС. Он не меняется, разве что в теории при смене пола (контрольный разряд зависит от пола). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 17:04 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
edward_sh Добрый день, джентельмены! Имеется таблица: ID - счетчик FName - nvarchar SName - nvarchar TName - nvarchar PassSer - int PassNum - int IDPrev - int Для однозначной идентификации человека и недопущения дублей решено сделать составной уникальный индекс по этим полям (кроме ID, IDPrev конечно). Все бы ничего, но на просторах нашей страны, встречаются люди у которых отчество отсутствует, как класс. При этом в поле отчества заносится NULL. Как отнесется сервер к такой ситуации? Удастся ли вставить запись с другими ФИО, но с NULL в отчестве? После беглого чтения BOL создается впечатление, что так сделать будет нельзя. Ситуацию, что человек сменил паспорт(утерял, поменял и т.д.) решает оператор, устанавливая поле IDPrev на предыдущую запись с таким ФИО или оставляет NULL. Т.е. при смене паспорта изначально считаем человека новым в этой базе. Сервер 2008 R2 что означает фраза "отчество отсутствует, как класс" ? какой класс у отчества? если там пусто и вы не хотите использовать NULL пишите по умолчанию, например, N'x.e.z. kto papa' ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 17:08 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
SQL2008 НеофитSQL Местная полиция считает полное имя плюс дату достаточным идентификатором для своих целей. Есть прецеденты, когда совпадало все и ФИО, и дата рождения! Обычно это выявлялось в аэропорту с билетами на руках... Бац! А человек оказывается в розыске! Отпуск насмарку, билеты пропали, подруга в слезах... Надеюсь, это случилось не с вами. Если так, сочувствую. Действительно, в большой стране есть ненулевой шанс двух человек родиться в один день и быть тезками, а если учесть смену фамилий при браках, шансы совпадения возрастают. Но практические неидеальные решения лучше воздушных замков, поэтому полиции надо где-то проводить черту. Поэтому ФИО и дата рождения, с надеждой что раса, пол или другие обстоятельства помогут избежать ошибочного ареста. Я помню когда после 9/11 наспех защищались от террористов составлением списков, даже про возраст не подумали. В ресультате, сенатор (или конгрессмен, не помню) Тед Стивенс не мог сесть на самолет из-за скандального британского певца с таким именем. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 19:19 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
Alibek B. ИНН не меняется при переезде, но в принципе он может изменяться в каких-то случаях. В качестве идентификатора нужно использовать СНИЛС. Он не меняется, разве что в теории при смене пола (контрольный разряд зависит от пола). А можно поподробнее про контрольный разряд и пол? Не нашел в сети про это. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2020, 12:20 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
http://rostov-tfoms.ru/services/zasedaniya-rabochih-grupp/erp/pravila-rascheta-kontrolnoj-summy-snils Про пол ничего не нахожу. Но ранее я работал со СНИЛС и слышал именно это, что смена пола это единственная причина, по которой СНИЛС может меняться. Или правила поменялись (а о поле я слышал давно). Или пол влияет на какую-то из других цифр. Или я неправильно понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2020, 13:29 |
|
Составной уникальный индекс и NULL
|
|||
---|---|---|---|
#18+
Alibek B. http://rostov-tfoms.ru/services/zasedaniya-rabochih-grupp/erp/pravila-rascheta-kontrolnoj-summy-snils Про пол ничего не нахожу ... Наверное, тут ноги растут отсюда : Страховое свидетельство подлежит обмену в случае изменения фамилии, имени, отчества, пола, даты и места рождения. Также страховое свидетельство подлежит замене в случае обнаружения в нем ошибок либо в случае непригодности к использованию. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2020, 14:57 |
|
|
start [/forum/topic.php?fid=46&fpage=46&tid=1685584]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 126ms |
0 / 0 |