mysql数据库结构如何设计?

小弟要做一个东西,记录各种数据
我举例一下:
记录全国学校学生的一些情况,要统计全国的所有学校,就北京小学举例,首先要记录北京小学的建立时间,校长名字,校园地址,学校总人数, 另外,要记录每个年级的同学情况,比如5年级,那么 需要记录5年级每天学生迟到人数,旷课人数,请假人数,[这个数据要每天都按时记录], 另外,要不定时的记录 同学X活动时间,Y活动时间[这些活动不是定时开始的,是随情况变化的,所以可能某天只记录一条数据,某天可能要记录上百 上千 条]

需求大概如此,可能我说的有点乱,我大概设计了下数据库的结构,请大家帮我看看 是否可以优化

data

如果这样设计表名,我打开mysql数据库管理器,就看到一大串以【ALL_北京小学_1年级_活动情况】
这样的格式命名的表,感觉看上去好复杂

当我需要查询,北京小学一年级活动情况的时候我需要:
【select * from ALL_北京小学_1年级_活动情况
总感觉太复杂了

不知道我设计的这个是不是正确,是不是哪里需要优化,请高人指点,谢谢了

另外 求高手回答我这个问题

http://luexiao.com/#!/questions/108434/p108721

4 个回答

确实应该如李园那样建表,建立联系(即两表出现相同字段)

然后通过查询就可以制出任意想要的表,任意想要的东西。

其实sql语言查询的精神就在这里,而不是建很多表来简化查询语句。

不过现在已经建立了表,如果做其他查询时打开表名字可能过长

首先ALL感觉不需要,地名可以简化像江浙沪,年级两个字不用打,

貌似最后重点在记录每天各学校各年级的出勤和活动情况。

所以表名可以就是京某小一操勤 沪某小二活动