sql >> Databasteknik >  >> RDS >> Mysql

Ska man generera ett unikt id för varje rad i en databastabell som annars inte har några unika nycklar?

Du kan alltid lägga till en enkel numerisk primärnyckel (t.ex. mysql auto_increment) så att du INTE får en unik identifierare för varje rad. Sammansatta primärnycklar är en allvarlig smärta om du måste använda tabellen i en främmande nyckelrelation, vilket tvingar dig att lista var och en av primärnyckelns komponentfält i alla joins/FK-specifikationer. Som jämförelse kan nämnas att genom att lägga till en enkel int-primärnyckel minskar du till att bära det ETT fältet runt för FK/join-relationerna.

Jag skulle föreslå något i stil med:

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


  1. MYSQL close connect kan inte stoppa infogningsaktiviteten

  2. PHP - hämta data från db till JSON

  3. NLS_COLLATION_ID() Funktion i Oracle

  4. Laravel vältalig withCount() ska vara långsammare än bara med()