Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 30.11.2015
Сообщений: 103

Присваивание уникального id как в 1с

29.07.2019, 17:32. Показов 2321. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Хочу реализовать нумерацию id строк таблицы моей бд, немного не допонимаю как это реализовали в 1с, а конкретнее нумерация у них идет
0000...1
0000...2
...

0000..11
0000..12

и т.д.

Не пойму как реализовать. Брать строку, заливать в массив посимвольно, переворачивать? Тоже не есть гуд, т.к. я просто буду работать с миллионами и миллиардами, пока не закончится double. Возможно есть другой способ? В интернете не нашел, т.к. не получилось сформулировать правильно мысль
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.07.2019, 17:32
Ответы с готовыми решениями:

Как съехать с этого уникального движка
Этот Битрикс мне задолбаб, как с него съехать, если на нем более 1000 новостей, а вручную переносить не хочется? Я знаю про мигратор, но он...

Как отследить ошибку повтора уникального индекса в БД
Всем привет! Подскажите, пожалуйста, как и в каком месте отследить ошибку повтора индекса? Необходимо, чтобы при вводе в поле БД...

Как поменять значение в теге span без уникального id?
Есть портал с таблицами где очень много ячеек Я пытаюсь написать в Visual studio на vb.net програмку которая будет брать значение из DGV...

14
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
29.07.2019, 17:37
Цитата Сообщение от ЕвгенийКор Посмотреть сообщение
Хочу реализовать нумерацию id строк таблицы моей бд, немного не допонимаю как это реализовали в 1с, а конкретнее нумерация у них идет
Вроде уникальный Id присваивается самой БД.
Вы какую используете?
0
1 / 1 / 0
Регистрация: 30.11.2015
Сообщений: 103
29.07.2019, 17:45  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вроде уникальный Id присваивается самой БД.
Вы какую используете?
Access. Вы мне уже помогали с массивами) хочу сделать такой вид или с этой бд это не реально? Я буду добавлять его сам с помощью запроса на добавление
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
29.07.2019, 18:51
Цитата Сообщение от ЕвгенийКор Посмотреть сообщение
Access.... хочу сделать такой вид или с этой бд это не реально?
С Access очень давно не работал.
Но, вроде, такая функция почти у всех современных БД есть.
Посмотрите установку поля-индетификатора в БД.

Если в Access подобного нет, то можно сделать кастомно.
Можно считать последнюю запись в БД и добавить ней 1.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
29.07.2019, 18:54
Цитата Сообщение от ЕвгенийКор Посмотреть сообщение
Access...
Прочитайте https://vscode.ru/prog-lessons... -s-bd.html
Обратите внимание на метод insertButton_Click.
В нём добавляется новая запись без идентификатора.
Значит он базой назначается.
1
1 / 1 / 0
Регистрация: 30.11.2015
Сообщений: 103
29.07.2019, 19:48  [ТС]
Почему то периодически не могу зайти на форум. Я реализовал то, что вы написали, но у меня идет 1, 2, 3, 4 и т.д. , а мне нужно сделать типа маски, чтобы вместо 1,2,3 было 00000001, 00000002, 00000003, как то так.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
29.07.2019, 20:10
ЕвгенийКор,
Цитата Сообщение от ЕвгенийКор Посмотреть сообщение
а мне нужно сделать типа маски, чтобы вместо 1,2,3 было 00000001, 00000002, 00000003
для чего такая мудреность?
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
29.07.2019, 20:46
Цитата Сообщение от ЕвгенийКор Посмотреть сообщение
1,2,3 было 00000001, 00000002, 00000003
дык числа 00000000000000000000000000000001 и 1 - это же одно и то же число. Если вам так хочется добавляйте нулей для вывода пользователю
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
29.07.2019, 23:15
Цитата Сообщение от ЕвгенийКор Посмотреть сообщение
Почему то периодически не могу зайти на форум. Я реализовал то, что вы написали, но у меня идет 1, 2, 3, 4 и т.д. , а мне нужно сделать типа маски, чтобы вместо 1,2,3 было 00000001, 00000002, 00000003, как то так.
Ведущие нули определяются форматом вывода.
Читайте https://docs.microsoft.com/ru-... formatting
1
1 / 1 / 0
Регистрация: 30.11.2015
Сообщений: 103
30.07.2019, 07:15  [ТС]
В принципе нули в начале нужны для общего вида, чтобы было единое отображение. Наверно так и сделаю, что сделаю маску из 6-7 нулей и буду ид преобразовывать в строку разбивать на символы, и в зависимости от количества символов буду убирать лишние нули. Саму формулу как напишу позже выложу. Хотя если порассуждать, то можно ид сделать текстовым и постоянно высчитывать его методом принял/обработал/отправил, но думаю, что упадёт в следствии этого скорость выполнения запросов, в частности поиска.
0
Эксперт .NET
 Аватар для Usaga
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,410
30.07.2019, 07:18
Лучший ответ Сообщение было отмечено ЕвгенийКор как решение

Решение

ЕвгенийКор, а этот геморрой с ведущими нулями вообще оправдан? Идентификаторы записей из базы не то, что должно у пользователя перед глазами отсвечивать. Это ему просто не нужно. А тому, кому нужно, хватит и обычного числа, того представления в котором ID действительно в базе представлены.
1
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
30.07.2019, 07:40
Лучший ответ Сообщение было отмечено ЕвгенийКор как решение

Решение

Нумерация в 1С довольно "хрупкая" штука, достаточно ручками изменить один номер, и все...последующие элементы могут даже не создаться. Код в 1С представлен в виде строки, а не числа. Ну и как выше советовали, такой геморрой не оправдан.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
30.07.2019, 10:37
Цитата Сообщение от ЕвгенийКор Посмотреть сообщение
В принципе нули в начале нужны для общего вида, чтобы было единое отображение. Наверно так и сделаю, что сделаю маску из 6-7 нулей и буду ид преобразовывать в строку разбивать на символы, и в зависимости от количества символов буду убирать лишние нули. Саму формулу как напишу позже выложу. Хотя если порассуждать, то можно ид сделать текстовым и постоянно высчитывать его методом принял/обработал/отправил, но думаю, что упадёт в следствии этого скорость выполнения запросов, в частности поиска.
Есть идентификаторы разного типа:
  • ИД в БД служит для однозначного определения записи. Так как в БД нет понятия объекта, то как-то надо определять какую запись меняем/удаляем и т.п. Для этого служит ИД. Это "внутренняя" информация БД и пользователю она не нужна и должна быть от него скрыта.
  • Второй тип ИД - это пользовательская нумерация-маркировка. Допустим для книг есть кода ISBN, УДК, ББК, для товаров штрих-коды и QR-коды. Эта информация предназначена для пользователя и с ИД в БД она практически не связана (или связана случайным образом).
Поэтому, если вам нужна пользовательская идентификация, то это не отменяет того, что в БД у вас всё равно должна быть ИД записей. Пользовательскую идентификацию настраивайте так как вам требуется по ТЗ. Можно просто брать ИД БД преобразовывать в строку и дополнять нулями, можно придумать какую-то сложную буквенно-цифровую нумерацию и т.п.
1
Эксперт .NET
 Аватар для Usaga
14308 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,410
30.07.2019, 12:06
Цитата Сообщение от Элд Хасп Посмотреть сообщение
ИД в БД служит для однозначного определения записи.
Суррогатный ключ.

Цитата Сообщение от Элд Хасп Посмотреть сообщение
Второй тип ИД - это пользовательская нумерация-маркировка.
Натуральный ключ.
3
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,110
Записей в блоге: 2
30.07.2019, 15:56

Не по теме:

Usaga, я даже словей таких не знаю!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.07.2019, 15:56
Помогаю со студенческими работами здесь

Как сосчитать среднее значение для каждого уникального id в таблице?
Нужно вывести информацию о коде модели продукта (ID) и средней цене по этому коду из таблицы Table. Как просто вывести коды продуктов...

Как называется ограничение внешнего или уникального ключа по умолчанию?
Если создаю ограничение какого-нибудь ключа (составное UNIQUE в примере) и не даю ему название, то какое у него будет название? CREATE...

Как задать парсинг если нету уникального элемента в html старанице
Для парсинга использую функции file_get_contents и preg_match. Если перед нужным элементом на странице есть уникальный элемент все...

Как запретить присваивание?
Как лучше запретить присваивание? Заприватить оператор и не делать его реализацию? Или как?

Как работает присваивание
#include <iostream> using namespace std; class A{ int a,b; A &operator=(const A &t){ cout<<3<<endl; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru