设计表的时候预留“备用列”是好习惯吗?该如何解决

设计表的时候预留“备用列”是好习惯吗?
公司在设计数据库的时候常常预留三个字段 reserve1,reserve2,reserve3, 目的是以后业务发生变更、需要增加字段时不用更改数据库,但经过一段时间的实践,我觉得这样做不好,因为reserve1,reserve2,reserve3这样的字段名称没有意义,在开发过后往往就记不清它们的含义了,虽然可以用文档来维护,但在分析程序的时候再去翻阅文档也实在是件麻烦的事,并且预留字段的类型和大小也未必符合新增业务的要求,大家觉得呢?

------解决方案--------------------
要具体根据你的需求来判断,比如数据量多大、多少用户在使用,
比如在工资系统中,一般是先生成
N个空字段,再根据需要写公式、计算等等,当然是ORACEL数据库,且是连接在网络上,
可以通过网络查询,不过这样,确实存在有冗余、速度比较慢、代码比较复杂的情况。
------解决方案--------------------
这个看是什么项目的了吧。

我接触的移动的项目比较多,移动的需求概括起来就是多变,他们自己也没有统筹规划,又要求功能升级的时候平滑过渡,这样的情况下一般是通过给一些表加上备用列留作扩充的。
------解决方案--------------------
我觉的也没有必要留,如果需要的话,在alter增加。
因为你预留的,也不能保证一定会符合增加的字段的要求,比如你预留了一个varchar(100)的,现在要加一个200的,你一样不能用预留的。