zoukankan      html  css  js  c++  java
  • 数据库/数据结构设计时的横表纵表选择

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

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

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

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

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

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

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

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

    当前我个人的选择:
        采用横纵结合的形式,主体为横表,主体对象中的不确定部分采用纵表。将一些固定项用横表形式存储,即时变更的数据采用纵表形式存储。
        不过这种横纵结合的形式,有领导说不太好,会导致开发更加复杂,我个人暂时没发现复杂的地方,反而比纯纵表要便于开发很多。。。。。有待开发过程中进行验证。 原文地址;https://alubio201312090130.iteye.com/blog/2183286
  • 相关阅读:
    pandas基本操作
    MySQL数据库(五)使用pymysql对数据库进行增删改查
    MySQL数据库(四)多表查询
    MySQL数据库(三)索引总结
    MySQL数据库(二)-数据库的增删改查
    MySQL数据库(一)
    Linux 解压/压缩xxx.zip格式(unZip Zip的安装和使用)
    关系型数据库和非关系型数据库的对比
    进程、线程、协程的区别
    python迭代器与生成器详解
  • 原文地址:https://www.cnblogs.com/jpfss/p/11269335.html
Copyright © 2011-2022 走看看