数据库设计-横表纵表的理解
来源:互联网 发布:matlab生成无标度网络 编辑:程序博客网 时间:2024/06/14 02:25
转载地址:http://blog.sina.com.cn/s/blog_6729c25501015pew.html
横表就是普通的建表方式,如一个表结构为:主键、字段1、字段2、字段3。。。 如果变成纵表后,则表结构为: 主键、字段代码、字段值。而字段代码则为字段1、字段2、字段3。
横表和纵表
第一张图就是横表,一行表示了一个实体记录,这就是我们传统的设计表的形式
第二张图就是纵表,他的一行记录,是用于表示某个学生的属性名和属性值对应关系,像这边有两个属性(名字和性别),在纵表中就要用两条记录来表示一个学生。
优点:一行表示了一个实体记录,清晰可见,一目了然。
缺点:如果现在要把这个表加一个字段,那么就必须重建表结构。
纵表
优点:如果现在要把这个表加一个字段,只需要添加一些记录。
缺点:数据描述不是很清晰,而且会造成数据库数据很多。另如果需要分组统计,要先groupby,较繁琐。
结论:应该把不容易改动表结构的设计成横表,把容易经常改动不确定的表结构设计成纵表。
在实际开发中,经常需要互相转换横表和纵表的形式,这里贴个从纵表数据转成横表显示的形式。
纵表转横表
Sql代码
- Select
student_no, -
max(decode(field_name,'student_name',field_value)) As student_name, -
max(decode(field_name,'student_sex',field_value )) As student_sex -
From cuc_student_y Group By student_no;
- 数据库设计-横表纵表的理解
- 数据库设计-横表纵表的理解
- 数据库设计的理解
- 数据库设计范式的理解
- 数据库设计范式的理解
- 数据库设计范式的理解
- 数据库设计范式的理解
- 数据库设计范式的理解
- 数据库设计范式的理解
- 数据库设计的3范式理解
- 数据库设计中范式的理解
- 数据库设计范式的理解[转]
- 理解数据库设计的三个范式
- 理解数据库设计的三大范式
- 理解数据库设计范式
- mysql数据库的三范式的设计与理解
- 对数据库设计的三大范式的理解
- 我对关系型数据库设计范式的理解
- ios开发(plist文件数据加载) 使用数据模型的方法加载plist文件中的数据
- 数据库设计三范式
- wpf GridSplitter
- 获取访问者的真实IP地址,绕过路由映射等
- 程序员如何持续提升自己的开发技能
- 数据库设计-横表纵表的理解
- Java基础多态、内部类、异常
- 下拉框选中一个选项后 触发事件
- ionic 项目中添加modal的步骤流程
- cef3嵌入MFC
- hdu5334(2015多校4)--Virtual Participation(构造)
- hdu2602 Bone Collector(背包问题)
- 关于多态的一些自己理解
- mysql_insert_id()寻找上一次插入的id