powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ИНН и вид данных
28 сообщений из 28, показаны все 2 страниц
ИНН и вид данных
    #34092888
Borr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть простая задача, на первый взгляд:

В данных фигурируют организации, у них само собой ИНН. Как создавать ключевую таблицу?
1. ИНН делать PK, но тогда как это отобразиться на объеме и быстродействии БД? Может просто генератором как обычно?
2. Какой вид данных ставить на поле ИНН Integer или Char?
Поделитесь опытам как удобнее всего?
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34092895
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borr B> 1. ИНН делать PK, но тогда как это отобразиться на объеме и
B> быстродействии БД? Может просто генератором как обычно? Я бы сделал суррогатный ключ на генераторе, а на поле с ИНН наложил unique constraint
Borr B> 2. Какой вид данных ставить на поле ИНН Integer или Char? Ага, интежер а завтра они 20-значный ИНН сделают :)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34092901
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вполне могут быть организации с одинаковым ИНН
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34092907
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srf2000вполне могут быть организации с одинаковым ИНН
хм, всегда думал, что ИНН - уникален
ссылку, пожалуйста
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34092913
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще то ИНН отдельно нахер никому не нужен, разве что в платежке, и то все равно вместе с КПП.
поэтому например 1С хранит ИНН и КПП как ДВА реквизита В ОДНОМ поле, разделенные символом /. И никто до сих пор не пострадал :-)

ты бы предметную область подизучил, прежде чем ее автоматизировать. А то сразу "ИНН! Первичный ключ! Генератор!".

ИНН даже как unique всем до лампочки. Вот есть ОГРН - который да, уникальный. И т.д. и т.п.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34092918
Dimano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас srf2000вполне могут быть организации с одинаковым ИНН
хм, всегда думал, что ИНН - уникален
ссылку, пожалуйста
Posted via ActualForum NNTP Server 1.3
Уникален то уникален, но бывают филиалы с другим адресом, названием и одинаковым ИНН с головной конторой.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34092920
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас srf2000вполне могут быть организации с одинаковым ИНН
хм, всегда думал, что ИНН - уникален
ссылку, пожалуйста
Posted via ActualForum NNTP Server 1.3

ну например филиалы, подразделения и головное головное предприятие могут иметь одинаковый ИНН. ссылки лень искать :)
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34092974
Borr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторты бы предметную область подизучил, прежде чем ее автоматизировать. А то сразу "ИНН! Первичный ключ! Генератор!".

Дело в том что я не с бухгалтерами работаю им КПП до лампочки. А данные не надо выводить типа ИНН/КПП - тогда каждый раз разделять строчку, зачем мне эта головная боль.

Карабас Барабас Спасибо я так и сделал.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093050
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При постановке на учет в другой налоговый орган ИНН не изменяется, а изменяется КПП. Если и делать ключ, то по двум полям - ИНН+КПП. И то это имеет смысл лишь в случае, что это реестр организаций, и двух записей с одинаковыми реквизитами в этой таблице быть не может.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093071
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще: ИНН вида 8901хххххх не поместится в тип Integer (или я не прав?..) А у физических лиц ИНН 12-значный - ну разве что его Int64 делать.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093240
Borr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ еще: ИНН вида 8901хххххх не поместится в тип Integer (или я не прав?..) А у физических лиц ИНН 12-значный - ну разве что его Int64 делать.

Тоже верно.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093590
zoth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borr авторты бы предметную область подизучил, прежде чем ее автоматизировать. А то сразу "ИНН! Первичный ключ! Генератор!".

Дело в том что я не с бухгалтерами работаю им КПП до лампочки. А данные не надо выводить типа ИНН/КПП - тогда каждый раз разделять строчку, зачем мне эта головная боль.

Карабас Барабас Спасибо я так и сделал.

а что за боль то? если firebird напиши UDF и им дели прям в процедуре... малоли где потом понадобится ;) сделай универсально, это не требует тут каких-то мега трудозатрат, а геороя в дальнейшем можно будет избежать
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093633
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zothа что за боль то? если firebird напиши UDF и им дели прям в процедуре... малоли где потом понадобится ;) сделай универсально, это не требует тут каких-то мега трудозатрат, а геороя в дальнейшем можно будет избежатьКак раз геморроя (как и прочих ЛузерДефайнедФанкшнз) позволит избежать хранение ИНН / КПП в отдельных полях. А клеить их в одну строку можно и полем calculated.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093682
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпозволит избежать хранение ИНН / КПП в отдельных полях. А клеить их в одну строку можно и полем calculated.
у Borr вроде как не бухгалтерия, поэтому ему не надо.
а для бухгалтерии разделение ИНН и КПП на отдельные столбцы не является важным. В 1С исторически был только ИНН, потом указание КПП в платежках стало обязательным для некоторых случаев, поэтому КПП ввели как "аппендикс".
Если бы сделали отдельным столбцом - ничего с точки зрения клиента это бы не поменяло. Поэтому udf необязательна, а если и нужна, то легко делается из той же самой функции которой комбинированный ИНН-КПП обрабатывался бы на клиенте.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093726
zoth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery zothа что за боль то? если firebird напиши UDF и им дели прям в процедуре... малоли где потом понадобится ;) сделай универсально, это не требует тут каких-то мега трудозатрат, а геороя в дальнейшем можно будет избежатьКак раз геморроя (как и прочих ЛузерДефайнедФанкшнз) позволит избежать хранение ИНН/КПП в отдельных полях. А клеить их в одну строку можно и полем calculated.

а ну да... я просто изходил из того что уже имеется структура, не ругайся
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093758
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zothя просто изходил из того что уже имеется структура, не ругайсяТы о чём? Никакой ругани, только обсуждение. Я стараюсь UDF использовать только в крайнем, действительно необходимом случае. А если можно заменить "родной" конструкцией, иногда даже выглядящей как бред, то и тогда только после тестов скорости выполнения в сравнении.

ЗЫ: Вывести меня из себя (до ругани) практически невозможно даже нашим юзерам.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34093992
zoth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery[quot zoth]
ЗЫ: Вывести меня из себя (до ругани) практически невозможно даже нашим юзерам.

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

--
Dik76

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34097591
x.diablo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MazoHistИ еще: ИНН вида 8901хххххх не поместится в тип Integer (или я не прав?..) А у физических лиц ИНН 12-значный - ну разве что его Int64 делать.

Не знаю как в русских, но в украинских ИНН могут быть ведущие нули, причем значащие.
Потому, если ты надумал хранить его как число - то потом придется застрелиться.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34097630
Фотография Юрий Носов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x.diablo MazoHistИ еще: ИНН вида 8901хххххх не поместится в тип Integer (или я не прав?..) А у физических лиц ИНН 12-значный - ну разве что его Int64 делать.

Не знаю как в русских, но в украинских ИНН могут быть ведущие нули, причем значащие.
Потому, если ты надумал хранить его как число - то потом придется застрелиться.
зачем стреляться? неужели трудно приписать нули спереди?
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34097730
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x.diabloНе знаю как в русских, но в украинских ИНН могут быть ведущие нули, причем значащие.И что, нулей впереди может быть разное количество, и это будут разные ИНН?
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34097738
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery W> И что, нулей впереди может быть разное количество, и это будут разные
W> ИНН?наверное там в одноричной системе
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ИНН и вид данных
    #34097763
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабаснаверное там в одноричной системе ну да всё равно, можно преобразовать и хранить только число цифр.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ИНН и вид данных
    #38593168
Bagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже хотел изменить тип с varchar(12) на bigint, но:
1. Таблица - справочник организаций
2. ИНН и КПП храню в разных колонках.
3. В списке есть и ЮЛ и ИП ИНН у которых 10 и 12 цифр соответственно

Что имеем:
ИНН у меня - первичный ключ. Если будет филиал - будет бяка. Пока их нет и не планируется, но если уж переделывать, то надо учесть.
x.diabloНе знаю как в русских, но в украинских ИНН могут быть ведущие нули, причем значащие.
Потому, если ты надумал хранить его как число - то потом придется застрелиться.
Та же тема. Но не все так печально. Дописать нули в ответе можно таким запросом
Код: sql
1.
2.
3.
4.
5.
6.
create table dbo.T1 (id bigint primary key not null);

insert into dbo.T1 values (12345678), (123456789), (1234567890);

select REPLICATE('0', 12 - len(cast(id as varchar(12)))) + cast(id as varchar(12))
from dbo.T1;


Но проблема не решена. Я думаю, что ноль в начале может быть только один как у ЮЛ так и у ИП. То есть не может быть ИНН у ИП с тремя нолями впереди. А это решает задачу, но раздувает запрос. ИНН у меня primary key в таблице - справочнике и имеет много связей с другими таблицами. Как то вот все же хочется хранить цифры как число а не как текст. Но тут надо даже не беря во внимание филиалы, определиться что проще. Хранить как varchar(12) или дорисовывать нули при запросе.
Делать в такой таблице суррогатный ключ мне совершенно не хочется, т.к. связка двух колонок ИНН и КПП в справочнике фирм - дело уникальное. А суррогатный ключ не будет использоваться ни для чего. Индексы, запросы, сортировка, чтение, правка - он нафиг не нужен! Единственное что можно сделать, это связи с другими таблицами по нему. Но зачем? Там тоже есть ИНН которым сейчас все и связывается.
Как итог пока скажу так:
С типом varchar(12) На небольшой базе со справочником фирм в 5000 записей и несколькими связанными журналами по 50'000 записей, все летает. Необходимости в оптимизации вообще нет. Но если можно лучше, почему бы это не сделать.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #38593175
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BagirИНН у меня - первичный ключССЗБ
...
Рейтинг: 0 / 0
ИНН и вид данных
    #38593180
Bagir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ССЗБ - Компьютерный сленг?
...
Рейтинг: 0 / 0
ИНН и вид данных
    #38593202
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да. означает "Человек самостоятельно сделал глупость, которая принесет ему проблемы".
СамСебеЗлобныйБуратино.
...
Рейтинг: 0 / 0
ИНН и вид данных
    #38593269
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BagirЯ думаю, что ноль в начале может быть только один как у ЮЛ так и у ИП
ноль в начале ИНН может быть только если первые две цифры содержат ноль. Незначащих нулей впереди нет. Кроме того, ИНН это "составное число", поэтому хранить его как bigint теоретически можно, но неудобно из-за того самого вероятного ведущего ноля.
И, да, ИНН может поменяться, если юр-физ лицо переедет в другую налоговую (насколько я понимаю). Поэтому ИНН первичным ключом быть не может. На роль ПК может претендовать разве что ОГРН.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ИНН и вид данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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