Tengo una pregunta bastante simple sobre el uso de claves naturales/sustitutas en un contexto bien definido que se manifiesta a menudo y que voy a ilustrar.Teclas primarias compuestas e influencia en el uso de claves naturales/sustitutivas
Supongamos que está diseñando el esquema de base de datos para un producto utilizando SQL Server 2005 como DBMS. En aras de la simplicidad, digamos que solo hay dos entidades involucradas, que se han asignado a 2 tablas, Maestro y Esclavo. Supongamos que :
- podemos tener 0..n entradas esclavo por una sola fila de Maestro;
- Conjunto de columna (A, B, C, D) en el maestro es el único candidato para clave primaria;
- Columna B en Master es sujeto a cambios en el tiempo;
- A, B, C, D son mix de columnas varchar, decimal y bigint.
La pregunta es: ¿cómo diseñaría las claves/restricciones/referencias para esas tablas? ¿Prefieres (argumenting su elección):
- Implementar un compuesto natural clave sobre el Master en (A, B, C, D), y una clave externa compuesta relacionados con el esclavo, o
- Introducir una clave sustituta K en Master, digamos una columna IDENTITY (1,1) con una clave foránea (de una sola columna) relacionada en Slave, agregando una restricción ÚNICA en Master (A, B, C, D) o
- Utilice un enfoque diferente.
En cuanto a mí, me gustaría ir con la opción 2), principalmente por suposición 3) y por rendimiento, pero me gustaría escuchar la opinión de otra persona (ya que hay un debate bastante abierto sobre el tema)
agradecimiento
Editado: el conjunto de columnas (A, B, C, D) en Master es ** el único candidato ** para la clave primaria –