【问题标题】:Running race joinning with specific category or ticket参加特定类别或门票的跑步比赛
【发布时间】:2015-04-25 07:13:53
【问题描述】:

我现在有一个 PHP/MySQL 网站,用于注册和支付跑步比赛。

我的主要问题(现在完全阻止了我)是,一个用户注册,并为一场比赛付费。这个单一的种族有 MySQL 字段“价格”。跑步比赛单价。

一个月后我将有一个新的活动,组织者想要不同跑步者的多个价格(取决于年龄、儿童、老年人等)

我实际的 MySQL Schema 是

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)

我想象用户网站流程,但我不知道如何在 DB 中实现它。 流程将是: - 键入西班牙身份证。 - 系统检查它是否以前加入。 - 如果没有,用户填写个人数据表。 - (新)点击该用户的类别/门票/价格。 - 将用户添加到“购物车”。 - 一次性支付所有参赛者。


例如:http://www.cronometrajes.com/en/guest_signup/race/ii_carrera_popular_olleros_de_sabero

测试 ID:71000000N

西班牙电话格式:[0-9]{9} 例如:666554433


由于我的网站架构,我不知道如何使用其他功能改进我的实际网站。

我希望我已经完美地解释了一切。对不起我的英语不好。

【问题讨论】:

  • 用户和个人资料之间是一对一的关系,对吧?
  • 而且(显然!?!)活动价格现在需要在自己的表格中!!
  • 用户和配置文件之间的关系 /PHP tank auth) 是 1:1)

标签: php mysql payment


【解决方案1】:

这很简单,您几乎已经完成了。您知道每次活动需要多个价格。这意味着您需要某种与事件相关的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 的表格或类似的表格,将儿童、成人、老年人与实际年龄联系起来,这可以在您的价目表中引用,或者您可以在代码中进行管理。有几种变体,但这应该可以帮助您入门。

【讨论】:

  • 你的第一列是多余的
  • 我更喜欢在我的所有桌子上都有 ID。我认为这是一个偏好问题。如果我有一个表需要出于任何原因引用该表,它就会变得简单得多。我不需要想出一个复合主键。如果你想我猜你可以删除它,但我建议包含它。
  • 好的,但你总是要参考 (event_id, max_age)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
相关资源
最近更新 更多