0

我正在用 php 开发一个参与者事件注册网络应用程序,并遇到了以下问题:

我们在大学举办了多项科技盛会活动,约有 4000 名参与者。在登记处,参与者必须报名参加活动(单人/多人)。在某一时刻,管理员必须能够锁定活动,以便参与者无法再注册该活动(意味着活动已经开始)。然后,管理员需要能够打印出所有已注册每个事件的人的列表(锁定后)。

我们想出了这个:

  • “参与者”表中的每个事件都有一个 BOOLEAN 列
  • 有一个多选字段作为事件输入的接口
  • implode() 接收到的数组
  • 爆炸()结果
  • 设置 foreach explod()ed 事件,针对参与者将 BOOLEAN 设置为 1

因此,当管理员想要打印时,请获取所有参与者,其中 BOOLEAN for event-name 设置为 1

这看起来有点难看,我们希望有人有更好的想法来解决这个问题。谢谢你。

4

1 回答 1

4

听起来你可以使用一些标准化。“每个事件的布尔列”。所以如果你有 50 个事件,你就有 50 列?拥有一个事件表、一个用户表和一个“events_users”表来链接两者会更有意义,例如:

create table events_users (
    user_id int,
    event_id int,
    primary key (user_id, event_id),
    foreign key (user_id) references users (id),
    foreign key (event_id) references events (id)
);

“锁定”字段进入事件表。然后让参与者很容易:

select user_id
from events_users
where event_id = XXX
于 2012-11-15T18:04:28.483 回答