我目前正处于计划阶段,正在构建一个日程安排web应用程序(用于志愿者为活动安排人员),我有一个问题要问那些更有经验的人。
背景:
有一个事件日历,任何用户在任何时候都可以注册任何事件。稍后,但在此之前,其中一个管理员将介入并从已注册的人员列表中选择一个“人员列表”,其余的将放入一个“备用列表”。
到目前为止,我一直在想的是会有一个事件表、一个用户表,然后还有另外三个:
用户事件
将用户映射到他们注册的事件。不表示员工或alt列表成员。
用户职员
将用户映射到他们注册的事件,并且碰巧正在进行人员配置。
用户alt
类似于userstaff
然后问题变成两部分:
这是个好办法吗?
这三个关联表都应该有用户id和事件id吗?
第二个问题真的是我想讨论的问题。这似乎是很多重复的材料(userstaff或useralt中的所有内容都将始终在userevent中),因此我正在考虑为userevent表创建一个唯一的键,除了复合键之外,其他表(userstaff和useralt)将引用该键。好的一面是,重复的内容更少,而坏的一面是一个中间表(userevent),几乎每个查询都需要这样引用它。
希望我已经说得够清楚了,提前谢谢你。
最佳答案
我想要下列表格:
User (UserID, firstname, lastname, etc.)
Event (EventID, Name, Date, Location, Capacity, etc.)
EventRegistration (EventRegistrationID, UserID, EventID, ParticipantTypeID, etc.)
ParticipantType (ParticipantTypeID, Name)
participanttype.name是“participant”或“staff”之一。
关于database - 数据库架构组织,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1041300/