满足不了需求怎么办

一、现有数据库表无法满足需求

1、我们自己设计的表

1.1、硬编码

    这个就麻烦了,如果需求困难的话你就痛苦了。

1.2、补充字段

    这个好说,需求明确的话我们直接往表中插入一个字段就OK。记得把相应的添加字段的sql记录下来,别浪费时间。

1.3、建立新的表

    这个一般都比较少见,但是也有经历过。

2、框架自带的表

    面对这种情况,毫无疑问我们是不能更改的,除非你可以改变框架源码,不过时间成本也不允许你这样做。那满足不了需求,这可该如何是好?扩展吧,那又该如何扩展呢?建立关联关系,把关键要素放到一个或多个新建的表中。问题又来了,那什么是关键要素?就是主键外键的关联关系,通俗点就是id与id之间的关系,这些元素是最主要最根本的。那要怎么样建立表呢?这又回到了建表的问题上了。怎么样建表,首先要考虑它们之间的关系,究竟是一对一还是一对多,同时还要考虑到三大范式。

    举个例子:Activiti的任务表act_ru_task,也就是框架表。在需求需要跟踪任务的各个状态,并且展示给前端界面时,这时的act_ru_task就满足不了需求了。那就建立表吧,那关键元素是什么?答案第一个肯定是任务id,想着id与id之间的关系,于是另一个就是自己建立表的主键id,还有就是需求的状态status了。任务对任务,没有存在父子关系,没有其它复杂成分,单纯的一对一关系。当然自定义的任务表还有其它元素,具体需要根据自己实际情景而定。另外值得注意的是,对于多种状态,要么选择枚举维护,要么选择常量类去维护。

二、基类保留扩展字段

    这种情况也还是比较常用的解决方案,因为类的属性明确的你可以直接为类封装,但是存在不明确可能会增加等的情况,我们就要考虑到该类的扩展性。但是这个不明确中又存在明确性,那么我们可以在基类上添加一个扩展字段。那么是什么样子的呢?你想一下类的属性,一般都是getXXX与setXXX,与之类似的就是map的put与get了。那么扩展字段的类型常见的就是Map<String, Object>,List<对象>等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡布奇诺-海晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值