複合キーは 1 つのテーブルに対しては問題なく機能しますが、テーブル間のリレーションを作成し始めると、少し複雑になることがあります。
2 つのテーブルPersonとEvent、および と呼ばれるそれらの間の多対多の関係について考えますAppointment。
Person名、姓、および生年月日で構成されるテーブルに複合キーがあり、場所Eventと名前で構成されるテーブルに複合キーがある場合、テーブルに 5 つのフィールドがありAppointment、関係を識別します。
リレーションをバインドする条件は非常に長くなります。
select Person,*, Event.*
from Person, Event, Appointment
where
  Person.FirstName = Appointment.PersonFirstName and
  Person.LastName = Appointment.PersonLastName and
  Person.BirthDate = Appointment.PersonBirthDate and
  Event.Place = Appointment.EventPlace and
  Event.Name = Appointment.EventName`.
一方、 および テーブルに自動番号付けされたキーがあるPerson場合、リレーションを識別するためEventにテーブルに必要なフィールドは 2 つだけAppointmentであり、条件ははるかに小さくなります。
select Person,*, Event.*
from Person, Event, Appointment
where
  Person.Id = Appointment.PersonId and Event.Id = Appointment.EventId