ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据库,横表,纵表

数据库,横表,纵表

原创 Linux操作系统 作者:TecShare7 时间:2012-11-25 20:59:32 0 删除 编辑
横表就是普通的建表方式,如一个表结构为: 
主键、字段1、字段2、字段3。。。 
如果变成纵表后,则表结构为: 
主键、字段代码、字段值。 
而字段代码则为字段1、字段2、字段3。  

纵表: 
name            course              score 
----------------------------------------- 
张三            语文                80 
张三            数学                75 
张三            外语                60 
李四            语文                90 
李四            数学                85 
李四            外语                70 
王五            语文                95 
王五            数学                80 
王五            外语                75 

横表: 
姓名        语文        数学        外语 
----------------------------------------- 
张三        80          75          60 
李四        90          85          70 
王五        95          80          75 

纵表对从数据库到内存的映射效率是有影响的,但细一点说也要一分为二:
纵表的初始映射要慢一些;
纵表的变更的映射可能要快一些,如果只是改变了单个字段时,毕竟横表字段比纵表要多很多。
我想这个还是在讨论如何优化数据库数据结构的问题,而我的意见是:如果有可能,还是不要用数据库的好,呵呵。
另:我亲身遭受过帐务系统表的横表和纵表的问题的折磨,横表使结构一目了然,但几乎不能扩展,当用户部署新业务时捉襟见肘,纵表似乎有无限的扩展性,但代价是有些凌乱,不便于理解,更要命的是数据管理上不够安全,我就知道某地方的帐务系统帐务配置表(纵表)被某位专家级操作者无意删除了一条,就是一条啊!结果......,而横表,你要改他的结构不是那么容易的,不过两者对帐务程序性能的影响几乎没有任何区别。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26451781/viewspace-749926/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-08-28

  • 博文量
    6
  • 访问量
    14045