ScheduleId обычно предпочтительнее для ORM, и он дает абсолютно уникальный и неизменный первичный ключ, который представляет запись. Первичные ключи не должны меняться. Также это облегчает работу с записями. Вам просто нужно дать идентификатор для обновления или удаления, а не передавать составной идентификатор.
Вы можете создать внешний ключ, когда выполняете определение для расписания:
PersonId int FOREIGN KEY REFERENCES People(PersonId)
или
CONSTRAINT fk_PersonId FOREIGN KEY (PersonId) REFERENCES People(PersonId)
или если вы изменяете существующую таблицу
ALTER TABLE Schedule ADD CONSTRAINT fk_PersonId
FOREIGN KEY (PersonId) REFERENCES People(PersonId)
И я упомяну, что если вы делаете составной fk, то вы должны сделать его первичным ключом, чтобы гарантировать, что он не только уникален, но и не равен нулю.
CONSTRAINT pk_Person_Event PRIMARY KEY (PersonId, EventId)