这个表该如何设计,极常见而且极富有挑战性的问题……
一个青年活动中心,有近1千名会员,每周该中心要举行举办两次活动,活动人数不定,取决于会员报名情况。
现在的情况是要设计活动表,记录每次报名有什么人参加
比如:
活动A,参加会员有:会员A 会员B 会员D
活动B,参加会员有: 会员A 会员K
现在有两种设计了方案:
一种是:
活动字段 参加会员字段
活动A 会员A
活动A 会员B
活动A 会员D
活动B 会员A
活动B 会员K
第二种
活动字段 参加会员字段
活动A 会员A,会员B,会员D
活动B 会员A,会员K
如果按第一种方案,对数据库做各种操作是很方便。但记录条数会很大
现在我要考虑的是,如果按第二种方案,在从一个活动中添加会员或删除会员比较麻烦,因为要处理字符串。如果要查询A会员是否参加了A活动的话就比较麻烦,如果采用第一种方案就比较方便:只要一条Select * from 活动表 where 活动字段=活动A and 参加会员字段=会员A
请诸位发表发表意见吧
另外,每次活动都有若干个赞助单位,每次活动都有若干个工作人员。为了简化问题,我没有提出来,如果采用第二种方案就太方便了每个活动只占用一条记录,如下
活动字段 参加会员字段
活动A 会员A,会员B,会员D
协助单位字段 主持人字段
单位A,单位B 主持人A,主持人D