sql >> Base de Datos >  >> RDS >> Mysql

¿Se debería generar una identificación única para cada fila en una tabla de base de datos que de otro modo no tiene claves únicas?

Siempre puede agregar una clave primaria numérica simple (por ejemplo, mysql auto_increment) para que SÍ termine con un identificador único para cada fila. Las claves primarias compuestas son un problema grave si tiene que usar la tabla en una relación de clave externa, lo que lo obliga a enumerar cada uno de los campos del componente de la clave principal en todas las especificaciones de unión/FK. En comparación, agregar una clave principal int simple lo reduce a llevar ese campo UNO para las relaciones FK/join.

Sugeriría algo como:

patients (id, name, ....)
meds (id, brand, name, ...)
patient_meds (patient_id, med_id, dosage, ...)