powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ИНН и вид данных
25 сообщений из 28, страница 1 из 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
25 сообщений из 28, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ИНН и вид данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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