Escenario de producto
En este tema se proporcionan detalles acerca de la información de los productos representada en la base de datos AdventureWorks de ejemplo, una lista de las tablas relacionadas con los productos y las consultas de ejemplo que muestran relaciones comunes existentes entre las tablas.
Información general sobre el producto
Como empresa de fabricación de bicicletas, Adventure Works Cycles tiene las cuatro líneas de producto siguientes:
- Bicicletas que se fabrican en la empresa Adventure Works Cycles.
- Componentes de bicicleta que son piezas de recambio, como ensamblados de ruedas, pedales o frenos.
- Equipos para bicicleta que se adquiere de los proveedores para revenderlo a los clientes de Adventure Works Cycles.
- Accesorios para bicicleta que se adquieren de los proveedores para revenderlos a los clientes de Adventure Works Cycles.
Tablas de producto
La tabla siguiente contiene una breve descripción de los datos que se almacenan en las tablas relacionadas con el producto.
Esquema.Tabla | Incluye este tipo de contenido | Comentario |
---|---|---|
Lista de todos los componentes que se utilizan para fabricar bicicletas y subconjuntos de bicicleta. |
La columna ProductAssemblyID representa el producto padre, o principal, y la columna ComponentID representa las piezas hijo, o individuales, que se utilizan para formar el ensamblado padre. |
|
Idiomas utilizados en las descripciones traducidas del producto. |
Las descripciones del producto están disponibles en árabe, chino simplificado, francés, hebreo, inglés y tailandés. |
|
Lista de las ubicaciones de Adventure Works Cycles en las que los productos y las piezas se almacenan como inventario. Por ejemplo, la pintura se almacena en la ubicación Paint Storage del almacén y en el centro de trabajo de fabricación, Paint Shop, donde se pintan los cuadros de las bicicletas. |
|
|
Información sobre cada producto vendido por Adventure Works Cycles o utilizado para fabricar bicicletas y componentes de bicicleta de Adventure Works Cycles. |
La columna FinishedGoodsFlag indica si un producto se ha vendido. Los productos que no se venden son componentes de un producto que se vende. Por ejemplo, una bicicleta se vendería, pero la plancha de metal utilizada para crear el cuadro de la bicicleta, no. |
|
Clasificación más general de los productos. Por ejemplo, bicicleta o accesorio. |
|
|
Costo de los productos a lo largo del tiempo. |
|
|
Descripción completa de los productos en distintos idiomas. |
Las descripciones del producto se ofrecen en árabe, chino simplificado, francés, hebreo, inglés y tailandés. |
|
Nivel de inventario de los productos por ubicación. Vea Production.Location más arriba. |
|
|
Precio listado de los productos a lo largo del tiempo. |
|
|
Modelos del producto asociados a productos. Por ejemplo, Mountain-100 o LL Touring Frame. |
La columna CatalogDescription contiene información adicional sobre el producto y utiliza datos de tipo xml. La columna Instructions contiene instrucciones sobre la fabricación del producto y utiliza datos de tipo xml. |
|
Referencia cruzada entre modelos de producto, descripciones de producto y los idiomas a los que se ha traducido la descripción. |
|
|
Imágenes de los productos vendidos por Adventure Works Cycles. |
Las imágenes se almacenan utilizando datos de tipo varbinary(max). |
|
Nota de comentario de los clientes sobre los productos de Adventure Works Cycles. |
|
|
Subcategorías de las categorías de los productos. Por ejemplo, Mountain, Road y Touring son subcategorías de la categoría Bike. |
|
Ejemplos
Puede utilizar las consultas siguientes para ver datos de los productos y para familiarizarse con las relaciones existentes entre las tablas de productos.
A. Mostrar productos por categoría, subcategoría y modelo
En el ejemplo siguiente se enumeran los productos por categoría, subcategoría y modelo. Los productos que no están clasificados no se incluyen. Para incluir todos los productos, cambie la unión de ProductCategory
por una unión 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. Mostrar las descripciones de los productos por modelo de producto
Las descripciones de los productos se crean para cada modelo de producto. Cada descripción está disponible en varios idiomas. En el ejemplo siguiente se muestra cada descripción de producto en cada uno de los idiomas.
[!NOTA] Es posible que algunos idiomas no se muestren correctamente si no se han instalado los archivos de soporte de idioma para los idiomas complejos de secuencias de comandos e idiomas asiáticos. Para instalar estos archivos, vea la documentación de Windows en Opciones regionales y de idioma.
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
A. Mostrar una lista de materiales de un solo nivel para un producto padre
En el ejemplo siguiente se muestran todos los componentes que se utilizan para crear un producto padre específico: ProductAssemblyID
. 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
Vea también
Conceptos
Escenario de fabricación
Escenario de compra y proveedor
Escenario de ventas y marketing
Otros recursos
Escenarios empresariales de Adventure Works Cycles