数据库,横表,纵表

本文对比了横表和纵表两种数据库表结构的特点及其应用场景。横表直观易懂但扩展性差;纵表虽结构灵活但理解难度较大,且存在数据安全性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

横表就是普通的建表方式,如一个表结构为: 
主键、字段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博客 ” ,链接:http://blog.itpub.net/26451781/viewspace-749926/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26451781/viewspace-749926/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值