`
遐想英灵
  • 浏览: 10499 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

数据库/数据结构设计时的横表纵表选择

阅读更多
最近在给项目做数据结构设计。
由于介入项目稍晚,原有数据结构已经大体定型,金融行业相关的项目,特别是钱相关的数据,有非常大的不确定性和扩展性要求,因此这几天一直为数据库采用横表纵表头痛。。。

---------------------------------------------------

横表:
    当前主流的/常见的建表模式,将一条数据横向排列,通常是一条数据体现对象的各种属性。正常结构为主键、字段1、字段2、字段3……。

横表的优缺点:
    优点:一条对应一个对象(或对象中部分属性),一目了然,可读性高,符合面向对象思想,同时便于编码阶段使用,开发维护难度低。
    缺点:没有扩展性,当出现需求变更时,只能强硬的增加字段、修改表结构。

---------------------------------------------------

纵表:
    类似于Map,采用键值对的形式存储数据,对应一个实体对象每个属性为一条属性,用于记录每个属性的值。正常结构为主键、字段名、字段值。

纵表的优缺点:
    优点:扩展性优。对象增加属性时,仅增加一条数据即可,对金融行业这种不确定费用项的场合尤其适用。
    缺点:可读性低,可维护性低,不体现面向对象思想。进行查询或统计时编码较复杂,如果设计的不够合理甚至会导致开发瓶颈。

---------------------------------------------------

当前我个人的选择:
    采用横纵结合的形式,主体为横表,主体对象中的不确定部分采用纵表。将一些固定项用横表形式存储,即时变更的数据采用纵表形式存储。
    不过这种横纵结合的形式,有领导说不太好,会导致开发更加复杂,我个人暂时没发现复杂的地方,反而比纯纵表要便于开发很多。。。。。有待开发过程中进行验证。
分享到:
评论

相关推荐

    Oracle数据库实战:一键执行批量将横表转纵表(横向表转纵向表)

    1、在日常开发中,业务提供的数据往往是横向数据,不符合开发设计的数据库表,若想转为纵表,手动操作效率太低,为此写了本方法。 2、适用于各类业务场景下的横表转纵表需求,只需要按照对应的表结构修改存储过程...

    纵表和横表的概念

    纵表与横表是数据库设计中的两种常见数据结构形式,它们在不同的应用场景下有着各自的优劣,尤其是在数据处理和分析方面。纵表和横表的概念不仅适用于电信行业,在多个行业中都有广泛的应用,尤其是在数据仓库、数据...

    工资表的设计方案及其纵表变横表的方法

    3. **易读性**:便于非技术人员理解数据结构。 4. **安全性**:保护敏感信息,如员工的个人信息和薪资详情。 ### 纵向表格转横向表格方法 在实际操作中,我们可能会遇到需要将纵向排列的数据转化为横向显示的情况...

    SQL Server纵表与横表相互转换的方法

    最后,值得注意的是,数据库设计应该尽量遵循范式理论,避免过度依赖横纵表转换,以减少数据冗余和提高数据一致性。不过,在特定的分析场景下,横纵表转换仍然是非常实用的工具。在实际工作中,根据业务需求灵活运用...

    酒店管理系统数据库设计.docx

    酒店客房管理系统数据库设计是信息化管理的关键部分,旨在提高酒店运营效率...通过遵循设计原则,绘制ER图,并详细规划各个表的结构,能够构建出一个高效、稳定且适应性强的数据库系统,为酒店的日常运营提供强大支撑。

    地下管线信息系统数据结构与功能架构探讨.pdf

    地下管线数据库的结构设计是系统核心所在,分为属性数据库和空间数据库。属性数据库包含管线线数据,而空间数据库包括地下管线图形信息和1∶1000基本比例尺地形图。具体字段设计如管点属性字段表和一般管线共同字段...

    access数据库.ppt

    - **建立表结构**:可以使用向导、表设计器或直接在数据表视图中创建。 - **设置字段属性**:定义字段的数据类型、大小、默认值等。 - **输入数据**:直接输入或导入外部数据。 3. **表间关系的建立与修改** - ...

    14 继承(一)(整个继承树映射到一张表)

    理解并熟练掌握这种策略对于使用Hibernate进行数据库操作的开发者来说至关重要,因为它直接影响到代码的结构、数据库的设计以及性能。在实际开发中,需要根据项目需求和预期规模来选择最适合的继承映射策略。

    数据库实用教程窗体与控件PPT学习教案.pptx

    5. **窗体的分类**:窗体可以根据结构和功能进行分类,结构上包括纵栏式窗体、表格式窗体、数据表式窗体、主/子窗体、图表窗体和数据透视表窗体;功能上则有数据录入窗体、控制切换面板窗体和交互信息窗体。 - 纵...

    Access数据库窗体和控件PPT学习教案.pptx

    Access数据库中的窗体和控件是数据库用户界面的重要组成部分,它们是用户与数据库交互的媒介。...通过理解和掌握窗体的不同方面,如结构、视图、类型以及创建方法,用户能够更好地设计和实现符合自己需求的数据库应用。

    数据库实用教程报表的设计PPT学习教案.pptx

    数据库实用教程中的报表设计是Access数据库管理系统的关键功能之一,旨在提供格式化和有组织的数据输出,便于数据的查看、分析和打印。报表是Access的重要对象,它从数据表和查询中提取信息,并通过设计输出格式化的...

    Foxpro2.5屏幕生成器数据结构分析.pdf

    4. 用户界面设计的参数:文档也提到了屏幕布局的参数,例如纵坐标(VPOS)、横坐标(HPOS)、高度(HEIGHT)、宽度(WIDTH)等,这些参数定义了用户界面元素在屏幕上的位置和尺寸。此外,屏幕生成器文件还会包含界面...

    数据库的窗体建立PPT学习教案.pptx

    - 自动窗体:根据选定的数据源自动生成窗体结构,如纵栏式窗体,简化了设计过程。 掌握窗体的建立和使用对于数据库应用开发至关重要,它能提升用户体验,简化数据库操作,并且通过灵活的视图和多种形式满足不同的...

    备考python选择题综合练习81-161道.pdf

    在选择题中提到的几种数据结构都具有其特定的应用场景和特点。队列是一种“先进先出”(First-In-First-Out,简称FIFO)的数据结构,而栈则是“后进先出”(Last-In-First-Out,简称LIFO)的数据结构,它们分别用于...

    Access数据库技术及应用:第6章 Access 2010报表.ppt

    首先,打开“设备.accdb”数据库,在导航窗格中,选择“dx”表作为报表的数据源。然后,单击“创建”选项卡,在“报表”组中单击“报表”,Access 将创建一个包含数据源中所有字段的报表。报表将自动使用表格式布局...

    详解数据架构的七类视图

    首先,企业架构是整体框架,它包括“四横五纵”的结构。“四横”代表了从高层次到低层次的设计阶段,分别是战略架构、业务架构、应用架构和技术架构。而“五纵”则涵盖了业务、应用、数据、技术和管控五个关键领域。...

    2009年4月全国计算机等级考试二级Access笔试试题及答案.pdf

    - **窗体设计**:纵栏式窗体以列显示记录,表格式窗体在同一窗体显示多条记录,数据表窗体类似数据查看界面,主/子窗体展示一对多关系数据,图表窗体用于图形化数据,数据透视表窗体通过Excel分析表展现数据。...

    程序设计报告---城市管理.doc

    2. 数据结构设计: - 定义`CityNode`类,包含城市名称(String cityname)、横坐标(int x)、纵坐标(int y)以及指向下一个城市节点的指针(CityNode* next)。 - 创建`CityManage`类,作为城市管理的主类,包含...

Global site tag (gtag.js) - Google Analytics