【IT专家网独家】本文将和大家探讨用纵向和横向这两种方法来组织Oracle数据库中的数据。本文的例子都是在Oracle数据库中完成的,但也适用于其他任何关系数据库。这些关系数据库数据组织的方法有利也有弊,文本也将为大家分析它们的异同。
根据业务和发展的需求,可以实施多种不同的数据存储方式。第一种数据布局为横向结构。这是一种传统的数据存储方式。顾名思义,每条新的数据记录都作为一行输入到表中,表字段是横向排列的。第二种是纵向结构。这是一种特殊的数据存储方式,只有由键(Key)和值(value)组成的两个实际数据列,以及一个(也可以是多个)识别列(ID)。
纵向vs.横向
下面的例子是传统的横向表结构:
表HR
|
ID |
姓 |
名 |
部门 |
性别 |
|
123 |
李 |
凯 |
技术部 |
男 |
|
234 |
金 |
鑫 |
市场部 |
男 |
|
456 |
欧 |
欣 |
会计部 |
女 |
而下面这个是纵向表结构的例子,存储的数据和上面的横向表相同:
表 VR
|
ID |
Key |
Value |
|
123 |
姓 |
李 |
|
234 |
姓 |
金 |
|
456 |
姓 |
欧 |
|
123 |
名 |
凯 |
|
234 |
名 |
鑫 |
|
456 |
名 |
欣 |
|
123 |
部门 |
技术部 |
|
234 |
部门 |
市场部 |
|
456 |
部门 |
会计部 |
|
123 |
性别 |
男 |
|
234 |
性别 |
男 |
|
456 |
性别x |
女 |
我们可以看到,数据从一个3行×4数据列的矩阵(表HR)转变成了一个12行×2数据列的矩阵(表VR)。横向表的记录条数与列数的乘积似乎和纵向表的行数相等。例如:3×4=12。不过,这种假设并不一定是正确的,稍后会在文中讨论这个问题。

