各位,请教一下,我的问题是这样的:我想做一个琴房管理系统,实现学生教师刷卡上下琴。琴房分为特殊琴房和普通琴房,特殊琴房就是钢琴琴房或者学生、老师自己带琴来的琴房,钢琴房是一个琴房只能在同一时间段内只能有一个人在使用,自己带琴来的琴房是固定的指定的琴房,这个好设计,但是普通琴房是一个琴房里面有好几种乐器,该琴房里面的一种乐器同一时间段内只能允许一个人使用,就是这种情况该如何设计库表才更合理呢?我的设计是设计一个琴房表,包含的字段是
 •琴房编号
 •琴房状态(判断该琴房是否使用正常等)
 •使用状态(就是判断该琴房是否有人使用)
 •琴房属性(是普通琴房还是特殊琴房)
 •琴房类别(是什么类别的琴房)
 
这个设计麻烦就是普通琴房时,一个琴房有多种乐器,每种乐器都可以有人去使用,这个处理不便,而且一个学生来刷卡的话,要根据其课表,看其是否有课,有课才分配上课的指定的教室,不上课,也就是练习的话,那就是看其需要练习什么乐器,然后查找琴房,分配空房给其使用,这里就要每种乐器都要有当前使用标记,以及能否使用的标记。说明一下,这个表拆分为一个特殊琴房和普通琴房表,这个你们可以不用考虑
请问,这个该如何切分表设计才好呢?才更合理?谢谢~~!还有哪里描述不清楚的,大家可以在下面回复,我会更新问题,让它描述更清晰。

解决方案 »

  1.   

    那就改为
    琴房表:id(编号),状态(使用,维修,闲置),属性(特殊,普通),类别。这样乐器表和关系表不变需要来上课的时候,3表联合查询,使用琴房ID对应乐器。
    然后使用琴房表的状态,属性,和乐器表的乐器名来过滤结果即可。如果是特殊琴房,记得加一个乐器种类不限的选项,保证自带乐器的时候可以查的结果