开发者社区> 问答> 正文

Java Web项目设计数据库时是否需要在表中加备用字段

最近在做一个Java Web项目,SSH框架,MySQL数据库。项目的数据库没有设备用字段。在开发过程中,因数据库设计者未考虑周到,业务实体有一个属性没有对应的字段,因此需要在数据库表加一个字段。又由于此字段要求不可为空,并且在开发阶段,测试数据不多。于是我在drop掉了原来的表,增加了一个字段再重新建了一张表。
按照通常的做法,设计数据库都会在后面加几个类型为varchar的预留字段,也没有具体思考过为什么要这么做,这么做的好处是什么。在遇到这个问题之后引起我思考:预留字段这个通用的做法是否能减少开发阶段由于考虑不周到,或后续维护阶段因为需求变更或者扩展改造而需要增加字段而造成的麻烦。就此与同事进行了讨论,大家意见不一,以下是正反方的一些意见和看法。希望大家能根据以往的项目经验和设计原则给出一些解答,怎样的设计能确保数据库健壮,可扩展。
我的观点:需要
原因:持久层的设计,数据库表结构不应轻易变更。因此应设置备用字段。启用备用字段后,只修改代码,在代码中增加注释和并文档说明即可,不需要改动数据库结构,更方便。
疑问:假如项目已经在实施阶段,数据库里存储的已经是一些生产数据,不可轻易删除,但需要加的字段是不可为空的字段,在有备用字段和没有备用字段这两种情况下,分别应该怎么处理那些前期已有的数据。

展开
收起
蛮大人123 2016-02-11 23:18:57 3709 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    如果预留字段的话:
    预留多少个字段
    预留什么类型的
    预留的字段不适用怎么办——比如长度/精度不够
    预留的字段允许不允许空值
    程序源代码里可以有注释,但是DBA们怎么办
    因此,不批准预留字段。

    2019-07-17 18:41:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载