横表与纵表的区分
来源:互联网 发布:易语言软件下载 编辑:程序博客网 时间:2024/04/30 02:10
横表就是普通的建表方式,如一个表结构为: 主键、字段1、字段2、字段3。。。 如果变成纵表后,则表结构为: 主键、字段代码、字段值。 而字段代码则为字段1、字段2、字段3。 具体为电信行业的例子。以用户帐单表为例一般出账时用户有很多费用客户,其数据一般存储为:时间,客户ID,费用科目,费用。这种存储结构一般称为纵表,其特点是行数多,字段少。 纵表在使用时由于行数多,统计用户数或对用户进行分档时还需要进行GROUP BY 操作,性能低,且操作不便,为提高性能,通常根据需要将纵表进行汇总,形成横表,比如:时间、客户ID,基本通话费、漫游通话费,国内长途费、国际长途费....。通常形成一个客户一行的表,这种表统计用户数或做分档统计时比较方便。另外,数据挖掘时用到的宽表一般也要求是横表结构。纵表对从数据库到内存的映射效率是有影响的,但细一点说也要一分为二:纵表的初始映射要慢一些;纵表的变更的映射可能要快一些,如果只是改变了单个字段时,毕竟横表字段比纵表要多很多。
横表和纵表
第一张图就是横表,一行表示了一个实体记录,这就是我们传统的设计表的形式
第二张图就是纵表,他的一行记录,是用于表示某个学生的属性名和属性值对应关系,像这边有两个属性(名字和性别),在纵表中就要用两条记录来表示一个学生。 从上面可以观察出,横表的好处是清晰可见,一目了然,但是有一个弊端,如果现在要把这个表加一个字段,那么就必须重建表结构。对于这种情况,在纵表中只需要添加一条记录,就可以添加一个字段,所消耗的代价远比横表小,但是纵表的对于数据描述不是很清晰,而且会造成数据库数量很多,两者利弊在于此。所以,应该把不容易改动表结构的设计成横表,把容易经常改动不确定的表结构设计成纵表。
在实际开发中,经常需要互相转换横表和纵表的形式,这里贴个从纵表数据转成横表显示的形式。
- 横表与纵表的区分
- 队列、堆栈与数组、链表的关系与区分
- 队列、堆栈与数组、链表的关系与区分
- 队列、堆栈与数组、链表的关系与区分
- 队列、堆栈与数组、链表的关系与区分
- 队列、堆栈与数组、链表的关系与区分
- 队列、堆栈与数组、链表的关系与区分
- Windows下MySql设置表区分大小写(统一window与linux的区分表大小写)
- Parameter与Argument的区分
- URI 与 URL 的区分
- 定义与声明的区分
- URI与URL的区分!
- InputStream与OutputStream的区分
- 路由器与交换机的区分
- requestCode 与 resultCode 的区分
- dom与innerHTML的区分
- 指令与数据的区分
- 进程与线程的区分
- 数学 --- 不失一般性
- CSS写省略号
- DDS程序
- 【C/C++和指针】auto_ptr智能指针
- 兼容EXT3的UploadDialog
- 横表与纵表的区分
- bzoj1858
- proteus元件表
- 黑马程序员_基础回顾之多线程
- 如何走好后面的路?
- 图--邻接表(建立、深搜、广搜)
- 夏季哪些蔬菜不适合生吃凉拌,食用会发生危险
- 一个暴风雨的夜晚——一个普通而又伟大老师的一天
- Wordpress主题制作不完全指南