Сценарий производства
В этом разделе содержатся подробные сведения о производстве Adventure Works Cycles, которые представлены в образце базы данных AdventureWorks, а также список связанных с производством таблиц и образцов запросов, демонстрирующих типовые связи между таблицами.
Краткий обзор производства
В образце базы данных AdventureWorks приведены таблицы, описывающие следующие типичные производственные области:
Производственные процессы.
Ведомость материалов — списки продуктов, которые используются или содержатся в другом продукте.
Заказы на производство — заказы на производство по цехам.
Расположение — места основного и дополнительного производства, например изготовление рам, окраска, сборка узлов и так далее.
Инструкции по производству и сборке продуктов по цехам.
Опись продуктов — физическое расположение продуктов на складе или в производственной зоне и количество в этих местах.
Техническая документация — технические спецификации и документация по обслуживанию велосипедов и их компонентов.
Таблицы производства
В следующей таблице содержится краткое описание данных, которые хранятся в производственных таблицах.
Schema.Table |
Тип содержимого |
Примечание |
---|---|---|
Список компонентов, используемых в производстве велосипедов и их узлов. |
Существуют внутренние рекурсивные связи в структуре ведомости материалов, которые указывают отношения между родительским продуктом и компонентами, из которых он состоит. Например, если родительский продукт — велосипед, то компонентом первого уровня может быть колесо в сборке. Сборка колеса состоит из своих собственных компонентов, таких как отражатели, ободы, спицы, шины и камеры. В столбце ProductAssemblyID указывается родительский или основной продукт, а в столбце ComponentID — дочерний элемент или отдельный элемент, который используется при сборке родительского элемента. В столбце BOM_Level указывается уровень компонента ComponentID относительно ProductAssemblyID. В предыдущем примере значение BOM_Level для сборки колеса равно 1, для компонентов сборки колеса значение BOM_Level равно 2 и т. д. |
|
Технические спецификации и другая техническая документация. |
В столбце DocumentSummary указываются данные типа varchar(max). В столбце Document указываются данные типа varbinary(max). |
|
Иллюстрации по производству велосипеда. |
Иллюстрации приведены в производственных инструкциях, которые содержатся в таблице ProductModel. В этом столбце указываются данные типа xml. |
|
Список складских и производственных зон в Adventure Works Cycles, где производятся или хранятся в виде материальных запасов продукты и запасные части. Например, краска хранится как на складе краски, так и в производственном цехе, где производится покраска рам велосипедов. |
||
Сведения о каждом продукте, проданном Adventure Works Cycles или использованном в производстве велосипедов и комплектующих компанией Adventure Works Cycles. |
В столбце FinishedGoodsFlag указывается, продан ли продукт. Непродаваемые продукты являются компонентами продаваемых продуктов. Например, велосипед может быть продан, а металл, из которого сделана рама, — нет. |
|
Уровень запасов продукции по месту расположения. См. предыдущий пример с Production.Location. |
||
Модели продуктов, связанные с продуктами. Например, Mountain-100 или LL Touring Frame. |
В столбце CatalogDescription хранятся дополнительные сведения о продукте в формате xml. В столбце Instructions содержатся инструкции по производству продукта в формате xml. |
|
Список типичных причин отбраковки велосипедов или их частей в ходе производственного процесса. Например, причина «Дефект окраски» используется в производственном цехе окраски для признания дефектной рамы велосипеда, окраска которой выполнена неправильно. |
В таблице WorkOrderRouting отслеживается количество брака и причины отбраковки по продуктам. В зависимости от серьезности проблемы продукт должен быть исправлен или заменен прежде, чем он может быть переведен в следующий производственный цех. |
|
Определяет, какие продукты и в каком количестве требуется изготовить для удовлетворения текущего и прогнозируемого спроса продаж. |
||
Подробности каждого заказа на производство. Содержат последовательность цехов, через которые проходит продукт в процессе производства или сборки. Например, рули велосипеда производятся в цехе изготовления рам. Они перемещаются в центр сварки для дополнительных операций, а затем в цех сборки узлов, где соединяются с рамой велосипеда. |
Примеры
Можно использовать следующие запросы для просмотра производственных данных и данных о продукции и для ознакомления со связями таблицы производства.
A. Просмотр многоуровневой ведомости материалов для родительского продукта
В следующем примере показаны все компоненты, которые используются для создания определенного родительского продукта: ProductAssemblyID.
USE AdventureWorks;
GO
WITH Parts(AssemblyID, ComponentID, PerAssemblyQty, EndDate, ComponentLevel) AS
(
SELECT b.ProductAssemblyID, b.ComponentID, b.PerAssemblyQty,
b.EndDate, 0 AS ComponentLevel
FROM Production.BillOfMaterials AS b
WHERE b.ProductAssemblyID = 800
AND b.EndDate IS NULL
UNION ALL
SELECT bom.ProductAssemblyID, bom.ComponentID, p.PerAssemblyQty,
bom.EndDate, ComponentLevel + 1
FROM Production.BillOfMaterials AS bom
INNER JOIN Parts AS p
ON bom.ProductAssemblyID = p.ComponentID
AND bom.EndDate IS NULL
)
SELECT AssemblyID, ComponentID, Name, PerAssemblyQty, EndDate,
ComponentLevel
FROM Parts AS p
INNER JOIN Production.Product AS pr
ON p.ComponentID = pr.ProductID
ORDER BY ComponentLevel, AssemblyID, ComponentID;
GO
Б. Просмотр описи продуктов
В следующем примере доступное количество каждого вида продукции перечисляется по его расположению на складе. Продукты могут быть расположены в нескольких местах.
USE AdventureWorks;
GO
SELECT P.Name AS Product, L.Name AS [Inventory Location],
SUM(PI.Quantity)AS [Qty Available]
FROM Production.Product AS P
JOIN Production.ProductInventory AS PI ON P.ProductID = PI.ProductID
JOIN Production.Location AS L ON PI.LocationID = L.LocationID
GROUP BY P.Name, L.Name
ORDER BY P.Name ;
GO
В. Просмотр заказов на производство по видам продукции
В следующем примере все заказы на производство перечисляются в подкатегориях продукта Mountain Bike (1), Road Bike (2), Touring Bike (3).
USE AdventureWorks;
GO
SELECT WorkOrderID, P.Name AS Product, OrderQty, DueDate
FROM Production.WorkOrder W
JOIN Production.Product P ON W.ProductID = P.ProductID
WHERE P.ProductSubcategoryID IN (1, 2, 3)
ORDER BY P.Name, DueDate ;
GO
См. также