Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 21.07.2013, 21:47   #1
st_yak
Пользователь
 
Регистрация: 20.07.2013
Адрес: Московская область
Сообщений: 18
Репутация: 10
По умолчанию MS SQL ключи и нумераторы

Здравствуйте!

Суть задачи.
Сделать таблицу приходных/расходных накладных. Так же нужен нумератор, то есть что бы при добавлении накладной автоматически присваивался новый номер.

1)Хочется видеть номер накладной в формате 000000001, 000000002 и тд.
Какой тип данных использовать для ключа, оно же поле таблицы - номер накладной?
Я остановился на Numeric(10,0) и тогда перед записью можно получить последний номер накладной +1, для автоматической нумерации.

2) Но если развивать тему далее, может понадобится префикс то есть РН00000001, ПН00000001. Тогда numeric не подходит и лучше использовать char, varchar? И в дальнейшем конвертировать данные в число отрезая к примеру два символа с лева.

Есть ли идеи по реализации данной задачи?
Поделитесь пожалуйста вашим опытом и вашими мыслями.
Если что не понятно написал, задайте вопрос, поясню.

Заранее премного благодарен.
st_yak вне форума   Ответить с цитированием
Старый 22.07.2013, 01:36   #2
Vapaamies
Ваш К. О.
Профессионал
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Адрес: Санкт-Петербург
Сообщений: 1,675
Репутация: 973
По умолчанию

По идее, префикс нужно хранить отдельно, кодируя тип накладной. Если РН и ПН -- это приходная и расходная накладные соответственно, ее тип наверняка понадобится где-либо в задаче еще.

С этой точки зрения дублирование типа накладной в нее номере есть дублирование информации -- нарушение декомпозиции.
__________________
Разработчик языка программирования Кантор
Vapaamies вне форума   Ответить с цитированием
Старый 23.07.2013, 09:29   #3
st_yak
Пользователь
 
Регистрация: 20.07.2013
Адрес: Московская область
Сообщений: 18
Репутация: 10
По умолчанию

Как вариант решил хранить номер накладной в int , префикс в отдельной колонке varchar(5). А нумерацию сделал стандартными средствами ms sql (идентификатор).
st_yak вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ключи, связи. Pudge Microsoft Office Access 2 21.02.2012 16:41
Ключи приложения EdNovice Общие вопросы Delphi 6 06.11.2009 09:48
Связи, ключи и т.д. Arkuz Microsoft Office Access 7 20.10.2008 20:25
БД. Индексы и ключи Сергей089 Помощь студентам 4 22.09.2008 21:30
ключи veter_s_morya SQL, базы данных 1 30.06.2008 15:33


08:51.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru