Mysql
 sql >> Base de données >  >> RDS >> Mysql

Doit-on générer un identifiant unique pour chaque ligne d'une table de base de données qui, autrement, n'a pas de clés uniques ?

Vous pouvez toujours ajouter une simple clé primaire numérique (par exemple, mysql auto_increment) afin de vous retrouver avec un identifiant unique pour chaque ligne. Les clés primaires composites sont très pénibles si vous devez utiliser la table dans une relation de clé étrangère, ce qui vous oblige à répertorier chacun des champs du composant de la clé primaire dans toutes les spécifications jointures/FK. En comparaison, l'ajout d'une simple clé primaire int vous réduit à transporter ce champ UNIQUE pour les relations FK/join.

Je suggérerais quelque chose du genre :

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