Сценарий продукта

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

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

Как фирма-изготовитель велосипедов Adventure Works Cycles имеет следующие четыре производственных линии:

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

Таблицы по продукту

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

Schema.Table Тип содержимого Примечание

Production.BillOfMaterials

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

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

Production.Culture

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

Описание продукта доступно на английском, арабском, иврите, китайском (упрощенное письмо), тайском и французском языках.

Production.Location

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

Production.Product

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

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

Production.ProductCategory

Самая общая классификация продуктов. Например, велосипед или аксессуар.

Production.ProductCostHistory

Стоимость продуктов в течение периода времени.

Production.ProductDescription

Полное описание продуктов на различных языках.

Описания продукта предоставляются на арабском, английском, французском, еврейском, китайском (упрощенное письмо) и тайском языках.

Production.ProductInventory

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

Production.ProductListPriceHistory

Цена по прейскуранту продуктов в течение периода времени.

Production.ProductModel

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

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

ProductModelProductDescriptionCulture

Перекрестные ссылки между моделями продукта, его описаниями и языками, на которые переведено описание.

Production.ProductPhoto

Изображения продуктов, продаваемых компанией Adventure Works Cycles.

Изображения хранятся в формате varbinary(max).

Production.ProductReview

Отзывы заказчиков об изделиях компании Adventure Works Cycles.

Production.ProductSubcategory

Подкатегории категорий продукта. Например, Mountain, Road и Touring — это подкатегории категории Bike.

Примеры

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

A. Просмотр продуктов по категориям, подкатегориям и моделям

В следующем примере перечислены все продукты по категориям, подкатегориям и моделям. Продукты, которые не относятся ни к одной из категорий, в список не включены. Чтобы включить все продукты, измените соединение ProductCategory на полное.

USE AdventureWorks;
GO
SELECT PC.Name AS Category, PSC.Name AS Subcategory,
    PM.Name AS Model, P.Name AS Product
FROM Production.Product AS P
    FULL JOIN Production.ProductModel AS PM ON PM.ProductModelID = P.ProductModelID
    FULL JOIN Production.ProductSubcategory AS PSC ON PSC.ProductSubcategoryID = P.ProductSubcategoryID
    JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID
ORDER BY PC.Name, PSC.Name ;
GO

Б. Просмотр описаний продукта по моделям

Описания продукта создаются для каждой модели продукта. Каждое описание доступно на нескольких языках. В следующем примере показывается описание каждого продукта на каждом языке.

ms124670.note(ru-ru,SQL.90).gifПримечание.
Некоторые языки, возможно, не будут правильно отображаться в случае, если не были установлены дополнительные файлы языковой поддержки для языков со сложным начертанием и восточноазиатских языков. Для установки этих файлов см. документацию Windows по региональным и языковым настройкам.
USE AdventureWorks;
GO
SELECT PM.ProductModelID, PM.Name AS [Product Model], Description, PL.CultureID, CL.Name AS Language
FROM Production.ProductModel AS PM 
    JOIN Production.ProductModelProductDescriptionCulture AS PL 
        ON PM.ProductModelID = PL.ProductModelID
    JOIN Production.Culture AS CL ON CL.CultureID = PL.CultureID
    JOIN Production.ProductDescription AS PD 
        ON PD.ProductDescriptionID = PL.ProductDescriptionID
ORDER BY PM.ProductModelID ;
GO

В. Просмотр одной одноуровневой ведомости материалов для родительского продукта

В следующем примере показаны все компоненты, которые используются для создания определенного родительского продукта: 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

См. также

Основные понятия

Сценарий производства
Сценарий закупки и анализа поставщиков
Сценарий продаж и маркетинга

Другие ресурсы

Бизнес-сценарии компании Adventure Works Сycles

Справка и поддержка

Получение помощи по SQL Server 2005