文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

sql设计表结构的常见问题有哪些

2024-04-02 19:55

关注

这篇文章主要介绍sql设计表结构的常见问题有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.sql改写遇到表字段经常要增加的业务怎么设计表结构?

2.业务问题是什么?

简单说就是有个表,字段经常变动,表结构该怎么设计?

例子:入金订单表(已经有29个字段)。因业务发展,入金订单有了拓展业务,有了三个拓展业务,paygo入金订单,自营入金订单,话费入金订单。paygo入金,需要增加4个字段(ADDRESS,LONGITUDE,LATITUDE,DEVICE_NO)。自营入金拓展需要增加7个字段(COUNTER_NO,BRANCH_NO,BUSINESS_CREATE_TIME,BUSINESS_ORDER_NO,BRANCH_NAME,SERVICE_FEE,ORDER_FEE)。话费入金订单需要增加1个字段。

不知道我说明白这件事情了吗?就是说,一个表经常增加字段,增加的字段又不是所有数据都用到。

3.表结构是如何设计的?

暂且称之为key-value方法。Ext_key存储增加字段名,ext_value存储字段值。

sql设计表结构的常见问题有哪些

sql设计表结构的常见问题有哪些

4.key-value设计带来的优点和缺点

sql设计表结构的常见问题有哪些

这个设计带来了很大灵活性,但是用起来,编写sql就不容易。设计到行转列,列转行。维护扩展起来不会方便。

来看下其中一个业务的sql:

如果统计的话会更复杂了。后期维护也会困难。

5.另外一种表结构设计,暂且称之为扩展表

再增加一个订单扩展表1,把经常变动的扩展字段放到扩展表。这样设计之后,可以想到,就变成了订单表和扩展表的简单join了,sql也更加清爽了。

sql设计表结构的常见问题有哪些

6.扩展表有什么缺点?

(1)经常改表结构,会不会锁表?当然会。但是目前oracle,包括mysql(5.7),增加表字段,增加字段速度很快。

(2)数据很多冗余。可以想到,paygo入金和自营入金相互用不到对方的字段,对应列就是空数据。空数据占用空间不大,我觉得可以忽略这个问题。

(3)假设这样一种情况,paygo入金订单扩展有1千万数据,自营入金订单扩展有500数据,话费入金订单扩展500条数据,paygo订单扩展表显得很冗余哦。遇到这种问题我觉得可以拆分:入金订单扩展表,paygo入金订单扩展表。这样编写sql的时候,也是非常简单的3表join.

以上是“sql设计表结构的常见问题有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯