2015-04-25 3 views
0

У меня есть сайт PHP/MySQL для регистрации и оплаты за бегущие гонки.Бегущая гонка со специальной категорией или билетом

Моей главной проблемой (которая сейчас меня блокирует) является то, что пользователь зарегистрировался и заплатил надпись за одну гонку. Эта одиночная гонка имеет поле «цена» в поле «MySQL». бег гонки < -> единая цена.

Через месяц у меня будет новое событие, и организатор хочет несколько цен для разных бегунов (в зависимости возраста, ребенок, старший, и т.д.)

Моя фактическая MySQL схемы

USERS (**id**, username, password, email) 
USER_PROFILES (user_id, name, surname, gender, birthdate, etc...) 
EVENTS (**id**, name_desc, date, price, ...) 
REGISTRATIONS (id, user_id, event_id, signup_date, bank_order, bank_result) 

I Представьте себе поток веб-сайта пользователя, но я не знаю, как его реализовать в БД. Поток будет: - Тип испанский удостоверение личности. - Проверка системы, если она соединена ранее. - Если нет, пользователь заполняет личную форму данных. - (New) Выберите категорию/билет/цену этого пользователя. - Добавляет пользователя в корзину. - Оплатите всех бегунов за один платеж.


Ex: http://www.cronometrajes.com/en/guest_signup/race/ii_carrera_popular_olleros_de_sabero

Test ID: 71000000N

Испанский Формат телефона: [0-9] {9} Ex: 666554433


Из-за моего веб-сайта схемы, Я не знаю, как улучшить мой фактический сайт с помощью этой другой функции.

Надеюсь, я все объяснил. Извините за мой плохой английский.

+0

Между пользователями и профилями существует от 1 до 1, не так ли? – Strawberry

+0

И (ясно!?!) Цена события теперь должна быть в собственной таблице! – Strawberry

+0

Взаимосвязь/php tank auth) между пользователями и профилями 1: 1) – llobu

ответ

0

Это просто, и вы уже почти там. Вы знаете, что вам нужно несколько цен за каждое событие. Это означает, что вам нужен какой-то объект event price list, относящийся к событию. Тогда у вас может быть много цен за каждое событие.

Итак, теперь вы можете создать что-то вроде

event_price_list (id, event_id, max_age, price) 

Так эти данные будут выглядеть

id, event_id, max_age, price 
1, 1,  10,  80 
2, 1,  18,  100 
3, 1,  21,  140 
4, 1,  60,  60 

Теперь вы можете использовать таблицу событий, чтобы получить все ценовые события списки и использование возраста вы могли бы работать из какого прайс-листа вы хотите. Вы могли бы создать другую таблицу под названием age_brackets или что-то подобное, что бы относилось к ребенку, взрослому, старшему и фактическому возрасту, если вы хотите, и это можно было бы указать в таблице прайс-листа, или вы могли бы управлять этим кодом. Есть несколько вариантов, но это должно заставить вас начать.

+0

Ваш первый столбец избыточен – Strawberry

+0

Я предпочитаю иметь идентификаторы на всех моих таблицах. Я думаю, что это вопрос предпочтения. Если у меня есть таблица, которая должна ссылаться на эту таблицу по какой-либо причине, она становится намного проще. Мне не нужно было бы создавать сложный первичный ключ. Вы можете удалить его, если хотите, я думаю, но я бы рекомендовал его включить. –

+0

ОК, но вы всегда будете ссылаться (event_id, max_age) – Strawberry

Смежные вопросы