Cenário de produto
Este tópico dá detalhes sobre as informações de produto representadas no banco de dados de exemplo AdventureWorks; uma lista de tabelas relacionadas a produtos e consultas de exemplo que demonstram relações comuns entre tabelas.
Visão geral do produto
Como uma empresa fabricante de bicicletas, a Adventure Works Cycles tem as seguintes quatro linhas de produto:
Bicicletas fabricas na empresa Adventure Works Cycles.
Componentes de bicicleta que consistem em peças de reposição, como assemblies de rodas, pedais ou freio.
Adornos de bicicleta adquiridos de fornecedores para revenda aos clientes da Adventure Works Cycles.
Acessórios de bicicleta adquiridos de fornecedores para revenda aos clientes da Adventure Works Cycles.
Tabelas de produtos
A tabela a seguir contém uma breve descrição dos dados armazenados nas tabelas relacionadas ao produto.
Schema.Table |
Contém este tipo de conteúdo |
Comentário |
---|---|---|
Lista de todos os componentes usados para fabricar bicicletas e subassemblies de bicicleta. |
A coluna ProductAssemblyID representa o produto pai ou principal, e ComponentID representa o produto filho ou individual, peças usadas para construir o assembly pai. |
|
Idiomas usados em descrições de produto traduzidas. |
As descrições de produto estão disponíveis em árabe, inglês, francês, hebreu, chinês simplificado e tailandês. |
|
Lista dos locais dentro de Adventure Works Cycles em que produtos e peças são armazenados como inventário. Por exemplo, a pintura é armazenada tanto no local de Armazenamento de Pintura do depósito como no centro de trabalho de fabricação, a Loja de Pintura, onde os quadros de bicicleta são pintados. |
|
|
Informações sobre cada produto vendido por Adventure Works Cycles ou usado para fabricar bicicletas Adventure Works Cycles e componentes de bicicleta. |
A coluna FinishedGoodsFlag indica se o produto está vendido. Os produtos não vendidos são componentes de um produto vendido. Por exemplo, uma bicicleta seria vendida, mas a folha de metal usada para criar o quadro de bicicleta não seria. |
|
Classificação mais geral de produtos. Por exemplo, bicicleta ou acessório. |
|
|
Custo de produtos no decorrer do tempo. |
|
|
Descrição completa de produtos em vários idiomas. |
As descrições de produto são fornecidas em árabe, inglês, francês, hebreu, chinês simplificado e tailandês. |
|
Nível de inventário dos produtos por suas localizações. Consulte o Production.Location mencionado previamente. |
|
|
Lista de preços de produtos no decorrer do tempo. |
|
|
Modelos de produto associados a produtos. Por exemplo, quadros de Mountain-100 ou LL Touring. |
A coluna CatalogDescription contém informações adicionais sobre o produto, usando o tipo de dados xml. A coluna Instructions contém instruções sobre fabricação de produto, usando o tipo de dados xml. |
|
Referência cruzada entre modelos de produto, descrições de produto e os idiomas nos quais a descrição foi localizada. |
|
|
Imagens de produtos vendidos por Adventure Works Cycles. |
As imagens são armazenadas com o tipo de dados varbinary(max). |
|
Análises de produtos Adventure Works Cycles feitas por clientes. |
|
|
Subcategorias de categorias de produto. Por exemplo, Mountain, Road e Touring são subcategorias da categoria Bicicleta. |
|
Exemplos
Você pode usar as consultas a seguir para exibir dados de produto e se familiarizar com as relações da tabela de produtos.
A. Exibindo produtos por categoria, subcategoria e modelo
O exemplo a seguir lista todos os produtos por categoria, subcategoria e modelo. Produtos não categorizados não são incluídos. Para incluir todos os produtos, altere a junção em ProductCategory para uma junção completa.
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
B. Exibindo descrições de produto por modelo de produto
Descrições de produto são criadas para todos os modelos de produto. Todas as descrições são disponibilizadas em vários idiomas. O exemplo a seguir exibe as descrições de produto em cada um dos idiomas.
Observação |
---|
Alguns idiomas talvez não sejam exibidos corretamente, exceto se os arquivos complementares de suporte a idiomas da Ásia oriental e de script complexo tiverem sido instalados. Para instalar esses arquivos, consulte a documentação do Windows em Opções regionais e de idiomas. |
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
C. Exibindo lista de materiais de nível único para produto pai
O exemplo a seguir exibe todos os componentes usados para criar um produto pai específico: 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
Consulte também