Как правило, у вас есть таблица с именем users_in_event
, которая содержит по одной строке для каждого пользователя в соотношении «многие ко многим» с таблицей events
.Таким образом, для каждого события у вас будет несколько строк таблицы, сопоставленных индивидуально с пользователями.
CREATE TABLE users_in_event
(
user_id INT,
event_id INT,
FOREIGN KEY user_id REFERENCES users (user_id) ON UPDATE CASCADE,
FOREIGN KEY event_id REFERENCES events (event_id) ON UPDATE CASCADE
-- Optionally, use ON DELETE CASCADE for the events foreign key
-- FOREIGN KEY event_id REFERENCES events (event_id) ON UPDATE CASCADE ON DELETE CASCADE
)
Чтобы узнать, какие пользователи участвуют в событии, выполните:
SELECT
users_in_event.user_id,
users.name
FROM users JOIN users_in_event ON users.user_id = users_in_event.user_id
WHERE event_id=1234;