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


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

    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

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

  • 相关阅读:
    词频统计
    时事点评-红芯浏览器事件
    我的第一篇博客
    浏览器同源策略,及跨域解决方案
    进击的 JavaScript (八) 之 继承
    进击的 JavaScript (七) 之 原型链
    进击的 JavaScript(五) 之 立即执行函数与闭包
    进击的 JavaScript(六) 之 this
    进击的 JavaScript(四) 之 闭包
    进击的 JavaScript(三) 之 函数执行过程
  • 原文地址:https://www.cnblogs.com/virusdefender/p/3538513.html
Copyright © 2020-2023  润新知