¿En qué etapa de la normalización es esto? (El movimiento de datos que se repiten en la tabla aparte)

StackOverflow https://stackoverflow.com/questions/2621443

Pregunta

he dado cuenta de que en el diseño de una base de datos que tienden a desplazar los conjuntos de repetición de datos en una tabla separada. Por ejemplo, decir que tenía una mesa de personas, con cada persona que vive en un estado. Entonces yo mover estos estados se repiten en una tabla separada y hacer referencia a ellos con las claves externas.

Sin embargo, ¿qué pasaría si yo no estaba almacenando más datos acerca de los estados. Entonces yo tengo una tabla con IdentificadorEstado y el Estado en. Esta es la acción correcta? Estado depende de la clave principal de la tabla de usuarios, también lo hace el cambio en su propia mesa de ayuda con algo?

Gracias,

¿Fue útil?

Solución

Creo que la eliminación de los subconjuntos de datos que se repiten dentro de una tabla y colocándolos en las tablas de su propio se pide en el proceso de colocar una mesa en Segunda forma normal .

Mover la abreviatura del estado en una tabla de su propia es cómo se normalice su base de datos. Protege tu mesa “usuario” de anomalías de actualización, donde por ejemplo de let por alguna razón se actualiza la abreviatura “KY” de Kentucky para “KQ”. Mediante la colocación de una clave externa en la tabla de usuario que contiene la clave primaria de la tabla de estados es suficiente con hacer una actualización de la tabla estados para corregir esta entrada para todos sus usuarios.

Una vez dicho esto, parece bastante obvio que los estados abreviaturas no cambian a menudo. Así que si usted sabe que es un hecho que su base de datos nunca tendrá que almacenar más información acerca de un estado, entonces es lógico y fundamentalmente sólida que abandonar el campo de estado en la tabla de usuario. De-normalización de tales común es. Además de aumentar la legibilidad de los datos de la tabla de usuario, y reducir la sobrecarga de hacer la unión. Sin embargo, es de preferencia.

Otros consejos

La tabla de estado no debería tener relación clave con la tabla de usuarios, sólo debe contener datos sobre los estados.

Lo que es posible que desee hacer para mantener a cada mesa lo más simple posible sería mantener los datos del usuario en una tabla de usuario, los datos de estado en una tabla de estado, y luego construir una tabla de unión que tiene relaciones de clave externa a la vez el usuario y el Estado tablas.

En cuanto a qué forma de normalización que es, no estoy seguro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top