You should read about relational database and how MySQL works, но с учетом предоставленной информации довольно простой пример будет в лучшем случае 3 таблицы.
- будут ваши зарегистрированные пользователи
- будут ваши события зарегистрированы
- будут участники мероприятия
Вот пример того, что она будет выглядеть так:
CREATE TABLE users
(
id int auto_increment primary key,
name varchar(50),
email varchar(255)
);
CREATE TABLE events
(
id int auto_increment primary key,
name varchar(50),
description TEXT,
happens DATETIME
);
CREATE TABLE event_participants
(
id int auto_increment primary key,
event_id int,
user_id int
);
- Ваши пользователи будут зарегистрированы на ваш
users
таблица и каждый пользователь получает уникальный ID
и, таким образом, одному и тому же пользователю не нужно регулярно регистрироваться на веб-сайте для участия в мероприятии.
- Ваши события зарегистрированы в вашей таблице
events
, и каждое событие получает уникальный ID
, таким образом вы можете легко искать события, события в будущем и т. Д.
- Когда пользователь участвует в событии, они вставляются в таблицу
event_participants
, чтобы вы точно знали, кто участвует в каком событии, вы можете подсчитать, сколько раз пользователь участвует в других мероприятиях и многом другом.
Так вот пример:
INSERT INTO users (name, email)
VALUES
('John', '[email protected]');
INSERT INTO events (name, description, happens)
VALUES
('Young Project', 'Its a soccer...', NOW());
Как вы можете видеть выше, я создал событие и также пользователь зарегистрирован.
Теперь, как мне собрать 2? Я также ссылаюсь на свой третий стол следующим образом:
INSERT INTO event_participants (event_id, user_id)
VALUES
(1, 1);
Теперь, как узнать, что пользователь участвует в мероприятии?Вот простой пример:
SELECT u.name AS `participantName`, e.name AS `eventName`, e.happens
FROM event_participants ue
JOIN users u
ON u.id = ue.user_id
JOIN events e
ON e.id = ue.event_id
WHERE e.id = 1
And here is a LIVE DEMO of it working.
Вы можете дополнительно перечислить все события:
SELECT * FROM events
или конкретный один:
SELECT * FROM events WHERE id = 1
Вы можете далее список все пользователей:
SELECT * FROM users
или конкретный один:
SELECT * FROM users WHERE id = 1
Как выбрать последний зарегистрированный случай?
SELECT * FROM events ORDER BY id DESC LIMIT 1
необходимо снова пересмотреть схему базы данных – c4pone
Как бы это было лучше? Пожалуйста, приведи пример. Я все еще новичок – 10now
Я делаю сайт регистрации для наших еженедельных футбольных матчей. Каждую неделю игрокам приходится регистрироваться на следующее мероприятие. Таким образом, будет следующая информация: player_name, timestamp. Я хочу показать последнее событие на сайте, чтобы игроки не регистрировались в прошлых событиях. Я довольно новичок в mysql. Теперь я думаю о добавлении столбца «номер события». Будет ли это работать? – 10now