Вам нужны отношения «многие ко многим» между таблицами staff
и service
. Вот как это делается.
Создайте так называемую таблицу join . Он будет иметь такую структуру.
CREATE TABLE staff_service (
service_id INT NOT NULL,
staff_id INT NOT NULL,
PRIMARY KEY (service_id, staff_id),
UNIQUE INDEX staff_service (staff_id, service_id)
);
Если в этой таблице есть строка, это означает, что сотрудник оказывает эту услугу. Поэтому, когда сотрудник начинает предлагать услугу, ВСТАВЬТЕ строку в таблицу. Когда сотрудник прекращает предлагать услугу, УДАЛИТЕ строку.
В моем предложенном определении таблицы есть два индекса. Поэтому при поиске в обоих направлениях могут использоваться индексы.
Это канонический способ использования СУБД на основе SQL для обработки отношений «многие ко многим».