mysql字段动态扩展_如何用动态字段实现系统的扩展性?

设计系统架构时,我们总是希望一个架构或者说是模型能支持多种业务场景,当然场景是系统范围内的。比如说做商品系统,商品有多种属性,不同类型的商品的属性不一样,怎么用关系型数据库去保存这些不同的属性呢?再比如做CMS时,除了基本的背景、位置、类型、状态等属性一致外,页面不同地方需要的数据结构却是不一样的。 再比如做广告时,不同地方的广告需要用不同属性去区别,而它们又有一些共有的属性,比如类型,名称。

经过思考和查询,知道有如下几种方法来存储不同数据。 动态添加属性字段、 JSON 格式保存、 预留字段、 属性字段行存储。以用java为编程,mysql数据库为例,分别说下这几种方式如何实现动态字段。

1. 动态添加属性字段。

意思是,在需要添加一个属性时。先在数据库的表里添加一个字段,比如给新上的商品有"产地“这个属性,就给product表添加一个"产地"字段。那么要用这个字段时,还要改相应的java程序。显然这种方式不利于灵活扩展,而且在一张大表添加一个字段需要较长时间,这也不适合7*24的服务。

2.JSON 格式保存。

就是说把需扩展的一组字段都到到一个字段里,各个字段用json的方式组成一个大的字符串。比如:{"clsTypeName":"java.lang.Integer","srcDes":"支持数字或数字区间,如10,2-5","storeCol":"field2","storeName":"ord","viewName":"排名"}。这种方式,添加、修改、删除问题都不大,但查询

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL一个开源的关系型数据库管理系统,它提供了丰富的功能和灵活的扩展机制。MySQL自定义字段模块的实现思路如下: 1. 数据库表设计:首先,要设计一个主表来存储常规的数据字段,然后设计一个扩展字段表来存储自定义字段。主表和扩展字段表之间可以通过外键关联。扩展字段表包含字段名称、字段类型、字段值等列。 2. 动态表创建:在程序中,可以通过执行SQL语句来动态创建扩展字段表。SQL语句可以根据用户的求生成,其中包括表名、字段名、字段类型等信息。 3. 自定义字段的增删改查:通过程序提供的接口,用户可以添加、删除、修改和查询自定义字段。用户输入字段名、字段类型等相关信息,程序将相应的SQL语句执行到数据库中。使用INSERT语句进行新增,DELETE语句进行删除,UPDATE语句进行修改,SELECT语句进行查询。所有的操作都要考虑数据的完整性和安全性。 4. 界面展示和交互:为了方便用户操作,可以设计一个简单的界面来展示自定义字段和主表字段,并提供相应的按钮来执行相关操作。用户可以通过界面输入数据并提交,程序将相应的数据写入数据库。 5. 数据校验和过滤:在接收用户输入数据之前,进行严格的数据校验和过滤。校验和过滤可以防止非法数据的注入,保证数据库的安全。 6. 数据查询和统计:在设计SQL语句时,可以使用JOIN语句来关联主表和扩展字段表,以实现自定义字段的查询和统计功能。可以根据用户的求进行灵活的合和筛选。 通过以上思路,可以实现一个简单的MySQL自定义字段模块。用户可以根据实际求,自定义添加所字段,并进行数据的增删改查操作。这样可以增强系统的灵活性和扩展性,提供更好的定制化功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值