Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2022, 21:11   #1
Danila63
Новичок
Джуниор
 
Регистрация: 19.04.2022
Сообщений: 1
По умолчанию Выполнение одним запросом

Всем привет! )

Меняю место работы, прислали тестовое задание, зарылся на пунктах 2.4 и 2.5. Помогите пожалуйста, ткните носом в нужном направлении ) Тестовое задание вставил ниже.

1. Создайте БД с наименованием “TestST”, и в ней следующие таблицы (поля):
1.1.Магазины (наименование таблицы: “Shops”)
• Идентификатор магазина (“Id”, целое положительное число);
• Наименование магазина (“Name”, строка Unicode, макс. длина 50 символов);
Значение поля – идентификатора является уникальным и автоинкрементным. Значение
поля - наименования магазина является уникальным.
1.2.Товары (наименование таблицы: “Products”)
• Идентификатор товара (“Id”, целое положительное число);
• Наименование товара (“Name”, строка Unicode, макс. длина 50 символов);
Значение поля – идентификатора является уникальным и автоинкрементным. Значение
поля - наименования товара является уникальным.
1.3.Покупатели (наименование таблицы: “Buyers”)
• Идентификатор покупателя (“Id”, целое положительное число);
• ФИО покупателя (“FIO”, строка Unicode, макс. длина 100 символов);
• Номер телефона покупателя (“PhoneNumber”, строка Unicode, длина 12
символов);
Значение поля – идентификатора является уникальным и автоинкрементным. Значение
поля - ФИО покупателя является уникальным. Значение поля – номера телефона
покупателя является уникальным.
1.4.Остатки товара (наименование таблицы: “Rests”)
• Идентификатор товара (“ProductId”, целое положительное число);
• Идентификатор магазина (“ShopId”, целое положительное число);
• Количество товара на остатке в штуках (“Quantity”, целое неотрицательное
число);
Комбинация значений двух полей - идентификаторов таблицы является уникальной.
1.5.Документы продаж (наименование таблицы: “Documents”)
• Идентификатор документа (“Id”, целое положительное число);
• Идентификатор товара (“ProductId”, целое положительное число);
• Идентификатор магазина (“ShopId”, целое положительное число);
• Идентификатор покупателя (“BuyerId”, целое положительное число);
• Количество купленного товара в штуках (“PurchaseQty”, целое
неотрицательное число)
• Дата/время покупки (“PurchaseDateTime”, дата/время);
Комбинация значений полей – идентификаторов документа и товара является
уникальной. Комбинация значений полей – идентификаторов товара, магазина и
покупателя также является уникальной. Значение поля - идентификатора документа НЕ
является автоинкрементным, а формируется при создании документа.
Все таблицы обязательно должны содержать первичный ключ, а также уникальные
ограничения для полей (или их комбинаций), не входящих в него, но содержащих
уникальные значения. Все поля всех таблиц НЕ могут принимать неопределенное
значение (“null”). Для таблиц остатков и документов необходимо создать проверочные
ограничения для полей с количеством товара, а также внешние ключи (к таблицам
магазинов, товаров, (покупателей)). Таблицы могут содержать и прочие
ограничения/индексы, а также триггеры (при необходимости). Создание прочих объектов
в БД (других таблиц, представлений, ХП, функций и т.п.) запрещено и считается
нарушением условий задания!
2. Заполните таблицы условными данными (в указанном порядке):
2.1.Магазины: необходимо создать ровно 100 записей.
Наименование магазина должно быть комбинацией наименования (условного для
тестового задания) торговой сети и номера (например: “Лента №1”, “Магнит №10” и т.п.).
Заполнение всех магазинов необходимо выполнить ОДНИМ запросом к БД.
2.2.Товары: необходимо создать ровно 1000 записей.
Наименование товара должно быть комбинацией из названия, производителя и цвета
товара (из любого условного ассортимента штучного товара для тестового задания,
например: “Телефон Samsung черный”, “Холодильник LG серебристый” и т.п.).
Заполнение всех товаров необходимо выполнить ОДНИМ запросом к БД.
2.3.Покупатели: необходимо создать ровно 100 записей.
ФИО покупателя должно быть комбинацией из условных фамилии, имени и отчества
(рекомендуется взять наиболее распространенные), номер телефона должен быть
уникальной строкой формата “+7XXXXXXXXXX” (где “X” – любая цифра от 0 до 9).
Заполнение всех покупателей необходимо выполнить ОДНИМ запросом к БД.

2.4.Остатки товара: в результате заполнения для КАЖДОГО магазина на остатке должно
оказаться не менее 150 и не более 300 записей товарных позиций (точное
количество определяется в указанном диапазоне случайным образом).
Количество товара на остатке для каждой позиции определяется также случайным
образом в диапазоне не менее 1000 штук и не более 2000 штук (таким образом задание
существенно упрощается - исключается необходимость контролировать остаток товара
при дальнейшем заполнении таблицы документов - его гарантированно “хватит на всех
покупателей даже при максимально возможных количествах покупок”).
Заполнение всех остатков по всем магазинам необходимо выполнить ОДНИМ
запросом к БД.
2.5.Документы продаж: необходимо заполнить таким образом, чтобы КАЖДЫЙ
покупатель купил в КАЖДОМ магазине не менее 3% и не более 7% от находящихся
на остатке данного магазина товарных позиций (конкретные позиции определяются
случайным образом) с количеством от 1 до 10 штук для каждой товарной позиции
(точное количество определяется в указанном диапазоне также случайным образом).
Значение поля - идентификатора документа формируется единым для каждой
комбинации значений полей-идентификаторов магазина и покупателя и не должно
повторяться у других значений полей этих идентификаторов. Значение поля
даты/времени покупки формируется единым для каждого значения идентификатора
документа и не должно повторяться у других значений поля этого идентификатора.
Заполнение всех документов по всем покупателям необходимо выполнить
ОДНИМ запросом к БД (при этом необходимо выполнить уменьшение количеств
товара на остатке (в таблице остатков) соответственно общим количествам
купленного в документах товара по магазинам).
Danila63 вне форума Ответить с цитированием
Старый 20.04.2022, 16:08   #2
Agency
Пользователь
 
Регистрация: 07.10.2017
Сообщений: 99
По умолчанию

На "тестовое" задание мало похоже, скорее курсовая, или кто-то негров эксплуатирует
Слишком много текста, и требований отработать ручками...
для понимания умений по БД достаточно трех таблиц с небольшим количеством данных...
Тебя парень разводят, если конечно все что пишешь является правдой
Agency вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет одним запросом. Возможно ли? Majestio SQL, базы данных 8 28.10.2014 15:54
выборка одним запросом limon142 PHP 1 25.05.2014 20:18
Выбрать данные из 2 таблиц одним запросом Linel SQL, базы данных 4 16.02.2011 15:29
Инвертировать значение поля (INT) одним запросом InternetStranger SQL, базы данных 7 04.08.2010 11:50
BETWEEN и LIKE одним запросом Pinya SQL, базы данных 9 19.08.2008 11:30