Используйте 4 таблицы:
Client (PK: ClientID)
Subscription (PK: SubscriptionID, FK: ClientID)
Course (PK: CourseID)
Subscription_Course (PK: Subscription_Course, FK: SubscriptionID, CourseID)
PK = первичный ключ, FK = внешний ключ.
Вот отношения:
Client -> Subscription (1:n)
Subscription -> Subscription_Course (1:n)
Course -> Subscription_Course (1:n)
Объяснение: каждая подписка предназначена специально для одного клиента, поэтому между ними существует отношение 1: n. Но один и тот же курс может быть записан более одного раза разными клиентами через разные подписки, поэтому между курсами и подписками существует отношение n: m, которое разрешается таблицей ссылок Subscription_Course
.
Вы можете добавить дополнительные ограничения для этой модели, если вы хотите, например, установить ограничение уникального ключа для (SubscriptionID, CourseID)
в Subscription_Course
.