本文主要介绍了sql设计表结构的常见问题,非常详细,具有一定的参考价值。感兴趣的朋友一定要看!
1.sql改写遇到表字段经常要增加的业务怎么设计表结构?
2.业务问题是什么?
,简而言之,有一个表,字段经常变化。桌子结构应该如何设计?
示例:存款单表(已经有29个字段)。由于业务发展,存款单业务有所拓展,拓展了三项业务,即paygo存款单、自营存款单、电话通知存款单。Paygo需要添加4个字段(地址、经度、纬度、设备号)来存款。自营存款扩展需要增加七个字段(柜台号、分行号、业务创建时间、业务订单号、分行名称、服务费、订单费)。通知费用存款单需要增加一个字段。
不知道我说清楚了没有?也就是说,一个表经常会添加字段,而添加的字段并不会被所有数据使用。
3.表结构是如何设计的?
暂时称为键值方法。Ext_key存储添加的字段名,ext_value存储字段值。
4.key-value设计带来的优点和缺点
这种设计带来了很大的灵活性,但是编写sql并不容易。从设计到行到列,列不断变化。不方便扩展。
看看其中一个企业的sql:
如果我们数一数,会更复杂。后期维护会比较困难。
00-1010增加一个订单扩展表1,将经常变化的扩展字段放入扩展表中。经过这样的设计,可以认为它变成了订单表和扩展表之间的简单连接,sql更加清爽。
5.另外一种表结构设计,暂且称之为扩展表
(1)如果表结构频繁变化,表会被锁定吗?当然会。然而,目前包括mysql(5.7)在内的oracle快速添加表字段和字段。
(2)大量数据冗余。可想而知,paygo存款和自营存款不使用对方的字段,对应的列为空数据。空数据占用空间小,我觉得可以忽略这个问题。
(3)假设这样的情况,paygo订金订单扩展有1000万数据,自营订金订单扩展有500个数据,电话呼叫订金订单扩展有500个数据,那么paygo订单扩展表就显得多余了。遇到这个问题,我觉得可以拆分:订金订单扩展表和paygo订金订单扩展表。当以这种方式编写sql时,它也是一个非常简单的3表连接。
以上就是《sql设计表结构有哪些常见问题》一文的全部内容感谢阅读!希望分享的内容对大家有帮助,有更多相关知识。欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50265.html