Проектирование БД MS SQL Server с возможными множеств значений
Подскажите пожалуйста. Проектирую БД и столкнулся с такой проблемой. Вот примерный проект БД

Оказалось что у 1 Persons может быть множества Services. Например: Person {id: 1; Name: Иван; date: 07.04.2022} будет и idService {1} это нормальное явление, но если Person будет ссылаться на множества id из таблицы Service. Подскажите пожалуйста, как решить данную проблему
Ответы (1 шт):
Раз у персоны может быть несколько сервисов, зачем вам в таблице персоны упоминать ID сервиса? Вам следовало бы задать идентификатор для персоны.
Набор следующих таблиц можно считать хорошей реализацией:
Person (PersonID, Name, Date) - здесь храним информацию о каждой персоне (для чего date, кстати?).
Services (PersonID, ServiceID) - здесь храним связки персона-сервис.
ServiceNames (ServiceID, Name) - здесь храним информацию о том, как каждый сервис называется (подразумевая, что каждому ServiceID соответствует определенный Name)
Извлечение информации
Для получения определенного рода информации вам понадобится JOIN.
Например, чтобы получить таблицу, в которой есть и персона, и ее имя, и сервис, и название сервиса, вам будет необходимо воспользоваться join'ом: по ключу PersonID между таблицами Person и Services, а затем по ключу ServiceID между таблицами Services и ServiceNames .
Логика запроса:
Выбрать все значения из таблицы Person объединить с Services по ключу Person.PersonID = Services.PersonID объединить с ServiceNames по ключу Services.ServiceID = ServiceNames.ServiceID