|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 19
|
||||||
Написать триггер для учета количества книг19.02.2016, 14:16. Показов 6276. Ответов 27
Метки нет (Все метки)
Здравствуйте, прошу помощи с задачкой
Есть таблица с базой книг, с полями: Название и количество на складе, и есть вторая таблица Продаж, задача состоит в том, что когда мы заполняем таблицу продаж, вводим ID книги, то с первой таблицы(склад) в поле - кол-во должно вычесть единицу, .т.е на складе было 3 книги Анна Каренина, мы одну купили, стало 2...и если на складе нету подходящей книги, то данные в таблицу Sale не заносятся
0
|
||||||
| 19.02.2016, 14:16 | |
|
Ответы с готовыми решениями:
27
Триггер для добавления к строке название таблицы, в которой содержится триггер
Написать триггер для автоматического обновления поля при обновлении, удалении, добавлении записей в таблице |
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||
| 19.02.2016, 14:26 | ||
|
Остатки - это вычисляемая величина по периодам и списку приходно расходных ордеров. Их не рекомендуется хранить в базе. Рекомендуется запросом подбивать агрегатными функциями остаток товара проходя по списку накладных.
1
|
||
|
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 19
|
|
| 19.02.2016, 14:29 [ТС] | |
|
Hikari, я только начинаю изучать t-sql, нужно выполнить описанную выше задачку, если есть другой способ это сделать, покажите пожалуйста наглядно
за совет спасибо
0
|
|
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
|||||||||||
| 19.02.2016, 16:12 | |||||||||||
|
Если это ради изучения, то не очень удачный пример... Я не подскажу тебе как бы делала это триггерами, я скажу как бы делала хитрая блондиночка:
Забыть про триггеры.
1
|
|||||||||||
|
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 19.02.2016, 16:56 | |
|
ужос
![]() никому больше не показывайте такие подходы и к оперативному учету, и написанию на SQL
0
|
|
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||
| 22.02.2016, 22:07 | ||
|
0
|
||
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|
| 22.02.2016, 22:42 | |
|
Hikari, набросайте схематично - как при вашем подходе контролировать целостность данных, т.е. чтобы расход не превышал приход.
0
|
|
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||||
| 23.02.2016, 09:18 | ||||
|
Как получить список приходных ордеров по коду ордера? Как вообще кладовщики работают в бумажных каталогах товара, знаешь? Как они подбивают свои остатки? Ладно, я уже поняла. Мне в этой теме не рады, более мешать не буду. Делайте как умеете - я свое мнение из личного опыта работы со складом выразила.
0
|
||||
|
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 23.02.2016, 09:29 | |
|
0
|
|
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
||||
| 23.02.2016, 11:30 | ||||
|
Попробуйте хоть немного подумать над тем, как ваш подход будет работать при большом количестве движений и в многопользовательском окружении.
0
|
||||
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||||
| 23.02.2016, 12:46 | ||||
|
Зато около 6 лет мучаюсь с программой, которая остатки хранит в таблице. Вечно получается так, что между периодами происходит недостача, ибо кто-то вручную остатки корректирует, и они потом с движением не коррелируются. В результате бухгалтерия пъет корвалолчик и хватается за сердечко. А потом я сижу и полнедели эти остатки правлю. Бр-р-р...
0
|
||||
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
||||
| 23.02.2016, 13:42 | ||||
|
Допустим, вы наагрегировали по движениям остаток некоего артикула в 10 единиц. Теперь проводят расходную накладную с этим же артикулом на 11 единиц. Контролировать такую ситуацию не нужно? Транзакции нужны, что бы не получить "остаток не запишется в поле таблички, но движение товара зафиксируется в виде накладной".
0
|
||||
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||||
| 23.02.2016, 14:10 | ||||
![]() И как можно надеяться на транзакцию, если она изначально оказывается несогласованной с другими движениями данных?
0
|
||||
|
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|||
| 23.02.2016, 16:00 | |||
|
Добавлено через 2 минуты
0
|
|||
|
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
|
|
| 23.02.2016, 16:09 | |
|
Мне кажется, для данной задачи стоит рассмотреть реализацию в виде индексированного представления.
0
|
|
|
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
||
| 23.02.2016, 16:14 | ||
|
Во-вторых пользователю особенно кладовщику это не интересно. Кладовщику бы баланс свести. Да так, чтоб сошлось с бухгалтерией до копеечки. Его не интересуют ни транзакции ни то, как хранятся остатки, ни то, какой методикой они высчитываются. Если у кого-то схема с хранением остатков отдельной цифирью независимо от списка ордеров работает на ура - я очень рада. На сим откланиваюсь, свое мнение я выразила. Принимать его или плеваться от избытка самомнения - это уже меня не интересует.
0
|
||
|
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 23.02.2016, 16:24 | ||
|
UPDATE Books SET nCount=nCount-1 WHERE id=@IDКнига INSERT INTO Sale (@IDКнига)
0
|
||
|
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
|
|||||
| 23.02.2016, 16:27 | |||||
|
1. Как вы обеспечите достоверность полученных значений? 2. Как предотвратить получение одного и того же значения остатка параллельными сеансами, с последующей некорректной проверкой допустимости списаний? И если вы привыкли так работать, это не означает, что все остальные должны работать аналогично. Если ваша БД открыта для прямых модификаций без всякого контроля, - не помогут ни транзакции, ни что-либо еще.
0
|
|||||
| 23.02.2016, 16:27 | |
|
Помогаю со студенческими работами здесь
20
Написать программу учета книг в библиотеке (используя коллекции) Программа для учета книг в библиотеке Программа учета книг Программа учета книг Задача с очередью. Составить программу для ведения очереди и учета количества компьютеров в филиалах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|