Tengo una tabla con una clave primaria compuesta (que consta de 4 columnas) que se utiliza para garantizar que no se ingresen duplicados en la tabla. Ahora necesito una nueva tabla que deberá hacer referencia a las claves de esta tabla como claves externas.
Mi pregunta es qué enfoque es más eficiente para las velocidades de búsqueda:
1) ¿Creo la nueva tabla que incluye las 4 columnas y hago referencia a todas en una clave foránea?
o
2) ¿Creo una nueva columna de identidad en la tabla de Clave primaria y la uso como clave externa en la nueva tabla?
Se espera que esta base de datos contenga una gran cantidad de datos, por lo que la he creado hasta ahora con el objetivo de minimizar la cantidad de datos que contiene cada tabla. Con esto en mente, la opción 2 sería el mejor enfoque ya que guardaré 2 columnas int y una columna de fecha y hora para cada fila, pero quiero evitar aumentar el tiempo de búsqueda si es innecesario.
INT IDENTITY
) en ese caso, hace que hacer referencia y unirse a esa tabla sea muuuucho más fácil. Para evitar duplicados, ponga una restricción ÚNICA en esas cuatro columnas. Además: las claves primarias estrechas son mucho mejores por razones de rendimiento (si se usan como clave de agrupación)