Поделиться через


Сценарий производства

В этом разделе содержатся подробные сведения о производстве Adventure Works Cycles, которые представлены в образце базы данных AdventureWorks, а также список связанных с производством таблиц и образцов запросов, демонстрирующих типовые связи между таблицами.

Краткий обзор производства

В образце базы данных AdventureWorks приведены таблицы, описывающие следующие типичные производственные области:

  • Производственные процессы.

    • Ведомость материалов — списки продуктов, которые используются или содержатся в другом продукте.

    • Заказы на производство — заказы на производство по цехам.

    • Расположение — места основного и дополнительного производства, например изготовление рам, окраска, сборка узлов и так далее.

    • Инструкции по производству и сборке продуктов по цехам.

  • Опись продуктов — физическое расположение продуктов на складе или в производственной зоне и количество в этих местах.

  • Техническая документация — технические спецификации и документация по обслуживанию велосипедов и их компонентов.

Таблицы производства

В следующей таблице содержится краткое описание данных, которые хранятся в производственных таблицах.

Schema.Table

Тип содержимого

Примечание

Production.BillOfMaterials

Список компонентов, используемых в производстве велосипедов и их узлов.

Существуют внутренние рекурсивные связи в структуре ведомости материалов, которые указывают отношения между родительским продуктом и компонентами, из которых он состоит. Например, если родительский продукт — велосипед, то компонентом первого уровня может быть колесо в сборке. Сборка колеса состоит из своих собственных компонентов, таких как отражатели, ободы, спицы, шины и камеры.

В столбце ProductAssemblyID указывается родительский или основной продукт, а в столбце ComponentID — дочерний элемент или отдельный элемент, который используется при сборке родительского элемента.

В столбце BOM_Level указывается уровень компонента ComponentID относительно ProductAssemblyID. В предыдущем примере значение BOM_Level для сборки колеса равно 1, для компонентов сборки колеса значение BOM_Level равно 2 и т. д.

Production.Document

Технические спецификации и другая техническая документация.

В столбце DocumentSummary указываются данные типа varchar(max). В столбце Document указываются данные типа varbinary(max).

Production.Illustration

Иллюстрации по производству велосипеда.

Иллюстрации приведены в производственных инструкциях, которые содержатся в таблице ProductModel. В этом столбце указываются данные типа xml.

Production.Location

Список складских и производственных зон в Adventure Works Cycles, где производятся или хранятся в виде материальных запасов продукты и запасные части. Например, краска хранится как на складе краски, так и в производственном цехе, где производится покраска рам велосипедов.

Production.Product

Сведения о каждом продукте, проданном Adventure Works Cycles или использованном в производстве велосипедов и комплектующих компанией Adventure Works Cycles.

В столбце FinishedGoodsFlag указывается, продан ли продукт. Непродаваемые продукты являются компонентами продаваемых продуктов. Например, велосипед может быть продан, а металл, из которого сделана рама, — нет.

Production.ProductInventory

Уровень запасов продукции по месту расположения. См. предыдущий пример с Production.Location.

Production.ProductModel

Модели продуктов, связанные с продуктами. Например, Mountain-100 или LL Touring Frame.

В столбце CatalogDescription хранятся дополнительные сведения о продукте в формате xml. В столбце Instructions содержатся инструкции по производству продукта в формате xml.

Production.ScrapReason

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

В таблице WorkOrderRouting отслеживается количество брака и причины отбраковки по продуктам.

В зависимости от серьезности проблемы продукт должен быть исправлен или заменен прежде, чем он может быть переведен в следующий производственный цех.

Production.WorkOrder

Определяет, какие продукты и в каком количестве требуется изготовить для удовлетворения текущего и прогнозируемого спроса продаж.

Production.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