ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库中动态列的几种设计思路

2022-10-16 14:51:44  阅读:296  来源: 互联网

标签:数据结构课程设计 设计 数据库


在需求开发的时候,可能会碰到一种场景,在需求中,涉及的某具体业务中,属性是动态的,在条件允许的情况下,可以使用穷举法对所有可能情况进行属性分析,然后进行分类,最终可以形成一套可以解决的方案。这通常是理想情况,Leader和客户通常不会给这个时间。下面简单说明一下,这种需求的一般解决方案。

一、使用数据库DDL进行动态创建。

优点, 1:使用简单,sql管理即可实现。

缺点,显而易见,

1:不同情况都会动态增加字段,表容易爆炸

2:在已存在数据的表中修改字段,容易锁表,影响性能。

二、使用数据库预留字段。

优点,1:与数据库无关性,对业务侵入小

缺点,1:扩展性差,超越了预留字段还有新字段,怎么处理?

2:可读性差,一般预留的字段都是attr1,attr2等字段,影响了字段的可读性。

3:性能低,为兼容绝大多数数据类型,一般预留字段会采用较长的文本数据类型进行存储,比较影响数据库性能。

三、使用数据库中的json数据类型

优点,1:使用简单,绝大多数编程语言都支持json操作,方便快捷。

2:对于mysql或者pg数据库,已原生支持json字段,可以基于json进行扩展查询。

3、json使用key:value形式存储数据,可避免字段可读性差的问题,通过规范命名提高可读性。

4、扩展性高,增加或者删除某字段,实现简单,直接移除key即可,不涉及表性能。

缺点,1:json字段查询操作,与普通字段稍有差异,有一定复杂度。

2:json字段的索引性能有待提高。

四、使用NOSQL

优点,1:采用mongoDb等json数据库,可以快速扩展。

2:专业数据存储,查询等性能可针对优化,性能高

缺点,1:需要一定学习成本。

综上,第一种和第二种,无非必要,强烈不建议采用这种方案。第三种方案在中小项目中能应对绝大多数需求,如果存储的数据比较多,同时性能要求比较高,可以采用第四种或者三、四两种相结合。

标签:数据结构课程设计,设计,数据库
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有