设计数据库模型的一点感想

我真心没学习过数据库设计,都是自己看了两篇文章应付基本的开发的。但是最近我又开始纠结这个问题,还是空教室;

http://www.cnblogs.com/virusdefender/p/3523464.html

这个已经说了两个数据库的模型了,现在看来,还是比较原始的那个比较好,使用ManyToMany的数据库是在是效率太低了,而且导入数据很慢很麻烦。

查询三个表,数据量变成11倍,这个真是没办法忍受的。我们还是乖乖的去使用第一个吧。但是现在话说回来,第一个有没有办法去优化呢?

 

数据库设计的原则有一个就是原子性,基本表中的字段是不可再分解的。 但是这个我觉得在这个项目里面可以去打破,我去这样的存储 数据:11个空教室的信息

存成字符串,比如0,1,1,1,1,0,0之类的。这样代码会减少很多,效率还是一样的高。

 

class EmptyClassroom(models.Model):
    building_name = models.CharField(max_length=20)
    room_name = models.CharField(max_length=30)
    week = models.IntegerField()
    day = models.IntegerField()
    classroom_status = models.CharField(max_length=30)

模型就变成这样的了,实际测试,原先的ManyToMany的形式,导入这9000多条数据,大约要15分钟,而!这!个!只!要!大!约!10!秒!钟!

原先查询每一节课都是一行代码,仅仅变的是变量名,而这个代码量少了很多,基本上和其中一种情况的代码差不多。

---------------------

http://www.cnblogs.com/wuhenke/archive/2010/08/11/1797307.html

 

转载一个数据库设计原则,这个都是很灵活的,有时候合理的去打破可能会起到很好的效果。

posted @ 2014-02-05 23:28  virusdefender  阅读(262)  评论(0编辑  收藏  举报