我想为Events.Events设计一个数据库可以是两个类型的正常事件和带有session的事件。每个事件都有一些参与者,如果事件结束,那么他们必须在事件结束后给出反馈,然后他们有填写单个反馈表单,但如果事件有会话,那么每个会话都会有一个单独的反馈表单(这里我很困惑如何设计它),用户必须根据事件会话填写该反馈表单。
例如,如果一个事件有3个会话,请将它们命名为A,B,C。然后,用户填写后会填写会话A的反馈表,会话B表格将出现,他必须填写该表格,然后C,但如果用户填写表格A并退出,再次登录后,他看到的表格将是会议B表格。
现在我的数据库设计如下所示
活动表
id event_name form_id date
这里form_id来自反馈表格,因为每个事件都会有不同类型的表单,这里如果是正常事件,那么我在表中传递form_id如果它的事件会话然后我保持form_id 0
会话表的事件
id event_id form_id
Event_Users表
id user_id event_id is_submitted
这里如果正常事件,那么我可以使is_submitted 1,但我应该怎么做会有会话的事件?我为此制作另一张桌子?
我的反馈表单,用户feedbak将成为商店
id question_id user_id event_id session_id score
我知道这个问题有点令人困惑,但请再次阅读,如果可能,请尝试给我一个解决方案
答案 0 :(得分:0)
设计方法是识别数据库中表示的实体 - 现实世界的东西。然后确定它们之间的关系。然后确定约束。
我正在使用符号 One ==<许多和很多> ==<很多在这里。
由于多对多关系,您需要每个实体的表和event_person
的连接表。
event: unique event_id descriptive attributes.
session: unique session_id FK event_id descriptive attributes
person: unique person_id descriptive attributes.
event_person: FK person_id FK event_id
eval unique eval_id FK session_id FK person_id descriptive attributes.
参与活动的每个参与者都参与该活动的每个会话吗?也就是说,如果事件> - <人际关系实际上是事件> - <会话关系?