Ocultar columnas de claves externas
Descripción general
Esta regla de mejores prácticas identifica las columnas de claves externas (el lado "muchos" de las relaciones) que son visibles para los usuarios finales. Las claves externas deberían ocultarse porque solo sirven para establecer relaciones y no aportan valor analítico cuando se muestran.
Categoría: Formato
Gravedad: Media (2)
Se aplica a
- Columnas de datos
- Columnas calculadas
- Columnas de tablas calculadas
Por qué es importante
Las columnas de claves externas visibles crean desorden innecesario:
- Confusión de los usuarios: Las claves externas parecen datos útiles, pero duplican los atributos de la dimensión
- Campos redundantes: Los usuarios ven tanto la clave como los atributos de la dimensión relacionada
- Listas de campos más largas: Más elementos entre los que desplazarse para encontrar los campos relevantes
- Uso incorrecto: Los usuarios pueden agrupar por claves en lugar de por los atributos de dimensión adecuados
- Visualizaciones deficientes: Gráficos que muestran valores de la clave en lugar de nombres descriptivos
Las claves externas existen solo para crear relaciones entre tablas. Una vez establecidas las relaciones, los usuarios deberían trabajar con los atributos de la dimensión, no con las claves externas en sí.
Cuándo se activa esta regla
La regla se activa cuando una columna es:
- Se usa como la columna "from" en una relación (lado de muchos)
- La relación tiene cardinalidad de muchos en el lado "from"
- La columna está visible (
IsHidden = false)
UsedInRelationships.Any(FromColumn.Name == current.Name and FromCardinality == "Many")
and
IsHidden == false
Cómo corregirlo
Corrección automática
Esta regla incluye una corrección automática:
IsHidden = true
Para aplicarlo:
- En el Best Practice Analyzer, selecciona las columnas de clave externa marcadas
- Haz clic en Aplicar corrección
Corrección manual
- En el Explorador TOM, localiza la columna de clave externa
- En el panel Propiedades, configura IsHidden como true
- Guarda los cambios
Causas comunes
Causa 1: Configuración incompleta del modelo
Las claves externas siguen siendo visibles después de crear relaciones.
Causa 2: Importación masiva
Tablas importadas sin procesamiento posterior para ocultar las claves externas.
Causa 3: Modelos heredados
Modelos antiguos en los que no se exigía ocultar las claves externas.
Ejemplo
Antes de la corrección
Campos de la tabla Sales (visibles):
- OrderDate
- CustomerKey ← Clave foránea (debería ocultarse)
- ProductKey ← Clave foránea (debería ocultarse)
- SalesAmount
- Quantity
Experiencia de usuario: La lista de campos está sobrecargada. Los usuarios podrían usar por error Sales[CustomerKey] en lugar de Customer[CustomerName].
Después de la corrección
Campos de la tabla Sales (visibles):
- OrderDate
- SalesAmount
- Quantity
Experiencia de usuario: La lista de campos está limpia. Los usuarios usan de forma natural los atributos de dimensión; el filtrado por relación funciona automáticamente.
Nivel de compatibilidad
Esta regla se aplica a los modelos con nivel de compatibilidad 1200 y superior.
Reglas relacionadas
- Establecer SummarizeBy en None para columnas numéricas - Configuración relacionada con la columna
- Cadena de formato para columnas - Configuración de visualización de columnas