Mysql
 sql >> база данни >  >> RDS >> Mysql

Трябва ли да се генерира уникален идентификатор за всеки ред в таблица на база данни, която иначе няма уникални ключове?

Винаги можете да добавите прост цифров първичен ключ (напр. mysql auto_increment), така че да получите уникален идентификатор за всеки ред. Композитните първични ключове са сериозна болка, ако трябва да използвате таблицата във връзка с външен ключ, което ви принуждава да изброявате всяко поле на компонента на първичния ключ във всички спецификации на съединения/FK. За сравнение, добавянето на прост първичен ключ int ви свежда до носенето на това ЕДНО поле за отношенията FK/join.

Бих предложил нещо от рода на:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично увеличаване на поле до изпълнение на определено условие mysql

  2. mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows и т.н.... очаква параметър 1 да бъде ресурс

  3. Обновете съдържанието на div само ако към базата данни се добави ново съдържание

  4. Как да получите брой конкретни редове от различна таблица в подзаявка

  5. Създаване на матрица за съвместно възникване от mysql база данни в MYSQL, PHP или R