Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Ест задача о реализации проката дисков. У диска есть три статуса "в наличии", "продан", "в прокате". Переход из "в наличии" в "продан" или в "в прокате" производится оператором с помощью хранимой процедуры при продаже или при сдаче в прокат. А как сделать триггер который будет автоматически переводить статус "в прокате" в статус "продан" если срок проката закончен. Если диск берут первый раз то все нормально, а если второй раз то переход будет производится из-за первой записи. Как сделать чтобы триггер учитывал только последний прокат?
19 май 14, 13:39    [16036361]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
xenix
Guest
А зачем триггер?
Реализуйте сразу в хранимке
19 май 14, 13:45    [16036399]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
baracs
Member

Откуда: Москва
Сообщений: 7204
VovaZZ
А как сделать триггер который будет автоматически переводить статус "в прокате" в статус "продан" если срок проката закончен.
Если я правильно понял задачу, это делается запускаемым по расписанию джобом.
19 май 14, 13:47    [16036422]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Я новичок в создании БД, поэтому многих терминов не знаю.Так хранимую процедуру нужно будет прожимать все время, нет? Можно по расписанию, но проблема в том что если я первый раз сдал в прокат со своими date_begin и date_end, то во второй раз будут новые date_begin и date_end, а триггер будет считывать первую пару и не правильно переводить статус
19 май 14, 13:52    [16036463]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
baracs, то есть с помощью job можно решить проблему изменения статуса по последнему периоду проката, а не по первому ?
19 май 14, 16:47    [16038067]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Имхо, все делается простым вычисляемым полем
IF date_begin и date_end пустые - "в наличии"
IF date_begin и date_end не пустые и date_end меньше текущей даты - "в прокате"
IF date_begin и date_end не пустые и date_end больше текущей даты - "продан"
19 май 14, 16:52    [16038105]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
А когда будет происходить эта проверка?
19 май 14, 17:03    [16038213]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
А когда будет происходить эта проверка?

Вычисляемое поле потому и называется вычисляемым, что получает свое значение при обращении к данным
19 май 14, 17:05    [16038231]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Я понял вашу мысль. А если покупатель возвращает диск в середине периода проката что будет со статусом? Выходит нужно ввести дату возврата?
19 май 14, 17:10    [16038270]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
А если покупатель возвращает диск в середине периода проката что будет со статусом?

А какие изменения в данных происходят при "покупатель возвращает диск в середине периода проката" ?
19 май 14, 17:14    [16038318]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Glory, статус должен поменяться на "в наличии" чтобы следующий покупатель мог купить/взять в прокат данный диск
19 май 14, 17:16    [16038336]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
статус должен поменяться на "в наличии" чтобы следующий покупатель мог купить/взять в прокат данный диск

Еще раз вопрос - какие изменения в данных происходят при "покупатель возвращает диск в середине периода проката" ?
Потому что ваш статус меняется в зависимости от других значений, а не сам по себе
19 май 14, 17:19    [16038373]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Glory
Еще раз вопрос - какие изменения в данных происходят при "покупатель возвращает диск в середине периода проката" ?
Потому что ваш статус меняется в зависимости от других значений, а не сам по себе

Выходит не происходит изменений,а должны. Значит нужно вести столбец date_return который во время возврата будет переходить из Null значения в конкретную дату?
19 май 14, 17:25    [16038421]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
Значит нужно вести столбец date_return который во время возврата будет переходить из Null значения в конкретную дату

Значит нужна садится и рисовать на бумаге схему даннных.
А потом уже программировать.
19 май 14, 17:26    [16038438]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Glory, да я уже все нарисовал, проблема с написанием предложенной вами формулы. Её нужно вводить, как я понял, в спецификация вычисляемого столбца -> формула, но вот синтаксис написания этих формул найти не могу
19 май 14, 17:56    [16038677]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
да я уже все нарисовал

вы нарисовали неправильно
19 май 14, 18:04    [16038715]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Glory
VovaZZ
да я уже все нарисовал

вы нарисовали неправильно

Вот схема. Что не так?

К сообщению приложен файл. Размер - 68Kb
19 май 14, 18:09    [16038735]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
Вот схема. Что не так?

В Заказы должен быть Тип операции. И все
19 май 14, 18:14    [16038774]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Glory
VovaZZ
Вот схема. Что не так?

В Заказы должен быть Тип операции. И все

Че то я окончательно запутался. А как я определю какие диски есть в наличии каких нет? Если ввести два типа операции: продажа и прокат. То как перевести прокат в "В наличии"?
19 май 14, 18:21    [16038821]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
Че то я окончательно запутался. А как я определю какие диски есть в наличии каких нет? Если ввести два типа операции: продажа и прокат. То как перевести прокат в "В наличии"?

По-моему, у вас задача по стандартному складскому учету. А вы пытаетесь сделать из нее непонятно что

Номенклатура - это справочник товаров
Состояние склада - текущее наличие товаров
Накладные - операции, которые изменяют состояние склада
19 май 14, 21:35    [16039635]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Glory
По-моему, у вас задача по стандартному складскому учету. А вы пытаетесь сделать из нее непонятно что

Номенклатура - это справочник товаров
Состояние склада - текущее наличие товаров
Накладные - операции, которые изменяют состояние склада

Но для меня этот стандартный складской учет вообще не понятен))
19 май 14, 21:38    [16039644]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
Но для меня этот стандартный складской учет вообще не понятен))

Тем не менее вы уже "все нарисовали" и вовсю программируете
19 май 14, 21:40    [16039651]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
VovaZZ
Member

Откуда:
Сообщений: 39
Glory
Тем не менее вы уже "все нарисовали" и вовсю программируете

Да, тут вы меня уели. Пойду разбираться что это, и с чем его кушать. Спасибо за помощь
19 май 14, 21:44    [16039657]     Ответить | Цитировать Сообщить модератору
 Re: Реализация проката дисков (вопрос об изменении статуса диска)  [new]
Glory
Member

Откуда:
Сообщений: 104760
VovaZZ
Glory
Тем не менее вы уже "все нарисовали" и вовсю программируете

Да, тут вы меня уели. Пойду разбираться что это, и с чем его кушать. Спасибо за помощь

Причем тут уел ?
Проектирование - это вполне себе определенный набор знаний, принципов и способов.
19 май 14, 23:09    [16039955]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить