数据库表动态列的设计

在我们设计数据库时,经常会遇到这样的问题,就是表中的某个是不固定的,随着用户需求的变化,该列可能会增加等问题,
就像上图中的灌溉方式:目前可能有三种灌溉方式,
可是以后随着用户的需求增加,又会有新的灌溉方式,如:人工灌溉之类的,
遇到此类问题,通常会有两种解决方案,
一:新建一子表,
该表结构大概如下:
编号   渠灌   喷灌   水车  Class1  Class2 ......
就是在建表时会首先预留几个列,为了以后的扩展用,
这样的方案虽然简单,但是也会体现出下列几种问题,
1:如果以后要新增个人工灌溉,那我们新增的人工灌溉如何与数据库中的列进行绑定?
2:而且建表时会首先预留列也不好控制,到底预留几列才算合适。。。。
二:在增加灌溉方式的时候,要动态的向数据库中 增加字段,(
sql = "alter tableName add columnName type(length)";
那前提得在前台绑定下的,
比如:渠灌是对应数据库表中的哪个字段,喷灌是对应数据库表中的哪个字段等等
如果我们遇到的问题比较简单我们一搬会选择第一种方案,
如果我们遇到的业务比较复杂,我们见意还是选择第二方案,
这样以后我们的维护也会简单的多,
posted @ 2011-04-15 15:45  左正  阅读(2768)  评论(0编辑  收藏  举报