0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 19

Написать триггер для учета количества книг

19.02.2016, 14:16. Показов 6473. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, прошу помощи с задачкой
Есть таблица с базой книг, с полями: Название и количество на складе,
и есть вторая таблица Продаж, задача состоит в том, что когда мы заполняем таблицу продаж, вводим ID книги, то с первой таблицы(склад) в поле - кол-во должно вычесть единицу, .т.е на складе было 3 книги Анна Каренина, мы одну купили, стало 2...и если на складе нету подходящей книги, то данные в таблицу Sale не заносятся

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
create table Books(
ID int IDENTITY(0,1) PRIMARY KEY,
Name nvarchar(100) NOT NULL,
nCount int NOT NULL,
 
CONSTRAINT check_nCount CHECK (nCount >= 0))
 
 
INSERT into Books(Name, nCount) values
('Отцы и дети', 3),
('Война и мир', 2),
('Анна Каренина', 4)
 
create table Sale(
ID int IDENTITY(0,1) PRIMARY KEY,
idBook int NOT NULL,
 
CONSTRAINT FK_idBook FOREIGN KEY (idBook) REFERENCES Books (ID))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2016, 14:16
Ответы с готовыми решениями:

Триггер для добавления к строке название таблицы, в которой содержится триггер
Есть таблицы База_Практик. В неё добавляю предприятие, и автоматически нужно добавить это предприятие с именем таблицы База практик в...

Триггер для добавления к строке название таблицы, в которой содержится триггер
Есть таблицы База_Практик. В неё добавляю предприятие, и автоматически нужно добавить это предприятие с именем таблицы База практик в...

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

27
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
23.02.2016, 16:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Hikari Посмотреть сообщение
Ты все таки не Свема.
Правильно будет "Свема".
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
23.02.2016, 16:40
Цитата Сообщение от iap Посмотреть сообщение
Мне кажется, для данной задачи стоит рассмотреть реализацию в виде индексированного представления.
Не всегда применимо.
Нельзя реализовать контроль недопустимости отрицательных остатков.
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.02.2016, 17:00
Цитата Сообщение от pincet Посмотреть сообщение
а это что?
А это ответ на вопрос нужно выполнить описанную выше задачку но никак не пропаганда черти-чего.
Я выше писала, что так делать не стоит, но раз автор темы настаивает то даю более менее приближенный ответ именно на постановку ТЗ.
Цитата Сообщение от pincet Посмотреть сообщение
Правильно будет "Свема".
Всмысле с ковычками? Ну хорошо. пусть так.
Цитата Сообщение от invm Посмотреть сообщение
1. Как вы обеспечите достоверность полученных значений?
Наличием проведенных накладных.
Цитата Сообщение от invm Посмотреть сообщение
2. Как предотвратить получение одного и того же значения остатка параллельными сеансами, с последующей некорректной проверкой допустимости списаний?
А это разве решается хранением остатков аз есьм?
Причем тут фиксация транзакций к способу обработки данных складов?
Цитата Сообщение от invm Посмотреть сообщение
И что? Как это влияет на безапеляционность вашего предложения не хранить остатки?
Никак... Забудь...
Цитата Сообщение от invm Посмотреть сообщение
Если ваша БД открыта для прямых модификаций без всякого контроля, - не помогут ни транзакции, ни что-либо еще.
Все с тобой ясно. Проехали. Просто забудь - ты меня победил без остатка.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
23.02.2016, 17:09
Цитата Сообщение от Hikari Посмотреть сообщение
Всмысле с ковычками? Ну хорошо. пусть так.

Не по теме:


Тест на "Школота" не пройден.

0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
23.02.2016, 17:43
Цитата Сообщение от Hikari Посмотреть сообщение
Наличием проведенных накладных.
Да ну? Вы вообще в курсе, что на некоторых уровнях изоляции пока работает агрегирующий запрос, данные в строках, которые уже были им просканированы могут быть изменены параллельными транзакциями? Или что могут быть добавлены новые строки данных, которые уже не будут учтены в агрегате?
Цитата Сообщение от Hikari Посмотреть сообщение
А это разве решается хранением остатков аз есьм?
При хранением остатков это решать не нужно.
Если грубо, то достаточно иметь ограничение на Остаток >= 0, плюс триггер на таблицу движений, который этот остаток изменяет должным образом.
Цитата Сообщение от Hikari Посмотреть сообщение
Все с тобой ясно. Проехали. Просто забудь - ты меня победил без остатка.
Не надо вставать в позу.
Если не понимаете задаваемых вопросов, - это не значит, что их задает идиот. Это так же может означать, что у вас просто не хватает знаний, чтобы их понять.
Не думаю, что совсем не найдется желающих объяснить непонятные вам моменты, если вы об этом попросите.
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.02.2016, 19:45
Цитата Сообщение от pincet Посмотреть сообщение
Тест на "Школота" не пройден.
Ну все все )
Успокойся, ты прав
Сегодня в такой день я никак не могу идти на компромисы с мужчинами.
Цитата Сообщение от invm Посмотреть сообщение
Вы вообще в курсе, что на некоторых уровнях изоляции пока работает агрегирующий запрос, данные в строках, которые уже были им просканированы могут быть изменены параллельными транзакциями? Или что могут быть добавлены новые строки данных, которые уже не будут учтены в агрегате?
Ты совсем не о том говоришь
Все, проехали. Ты победитель.
Цитата Сообщение от invm Посмотреть сообщение
Если грубо, то достаточно иметь ограничение на Остаток >= 0, плюс триггер на таблицу движений, который этот остаток изменяет должным образом.
Ох... какое серьезное заблуждение... В реальной жизни такая схема увы не работает.
Попробуй перевести этот алгоритм на бумагу, и увидишь, что тебе потом скажут кладовщики. Знаем. Плавали.
Цитата Сообщение от invm Посмотреть сообщение
Это так же может означать, что у вас просто не хватает знаний, чтобы их понять.
Все все. Успокойся
На хватает - так не хватает. Не переживай ты так из-за меня.
Цитата Сообщение от invm Посмотреть сообщение
если вы об этом попросите.
но комментс...
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
23.02.2016, 20:00
Цитата Сообщение от Hikari Посмотреть сообщение
Ты совсем не о том говоришь
Само собой, ведь вы так и не поняли о чем речь.
Цитата Сообщение от Hikari Посмотреть сообщение
Ох... какое серьезное заблуждение... В реальной жизни такая схема увы не работает.
Да ну? Если это не работает в вашей реальной жизни с вашими кладовщиками, то это не значит, что все использующие такую схему идиоты. Не судите о том, в чем плохо разбираетесь.
Цитата Сообщение от Hikari Посмотреть сообщение
Не переживай ты так из-за меня.
Лично мне вы вообще фиолетовы Оставайтесь и дальше неучем и продолжайте насиловать сервер кучей агрегирующих запросов.
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
23.02.2016, 21:30
Цитата Сообщение от invm Посмотреть сообщение
Оставайтесь и дальше неучем и продолжайте насиловать сервер кучей агрегирующих запросов.
Да делай ты что хочешь, чего ты ко мне прицепился?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2016, 21:30

Написать программу учета книг в библиотеке (используя коллекции)
Написать программу учета книг в библиотеке. Сведения о книгах содержат: фамилию и инициалы автора, название, год издания, количество...

Программа для учета книг в библиотеке
Суть программы заключается в создании базы данных через структуры или классы с возможностью добавления редактирования удаления записей...

Программа учета книг
Написать программу, выполняющую следующие действия со структурой и файлами: Программа учета книг, считывать информацию из файла,...

Программа учета книг
Добрый день. Нужна программа, в которой можно вести учет прочитанных книг, книг в планах и книг в процессе. Чтобы по определенному...

Задача с очередью. Составить программу для ведения очереди и учета количества компьютеров в филиалах
Имеется следующая задача: Поставщик направляет товар Заказчику. Заказчик имеет сеть филиалов. Поступающий товар распределяется по...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru