在基础数据的构建中,如果遇到要求字段是要可变的,用户可以增加字段,这要如何实现,请执教!谢谢!!
---------------------------------------------------------------
如果是这样,只能是你的数据库设计的不合理。
不可能有这样的需求,从性能上说,是没有好办法实现的。
我想,设计好的数据库,可以避免添加字段的吧。
从横向转为纵向也可以考虑。
---------------------------------------------------------------
这种要求是可能存在的
这样行不行呢?
建结构的时候,考虑用户可能的要求,预留几个字段来适应用户要求的变化
---------------------------------------------------------------
Why not just use Varchar2(N) type , format your data and store it .
Sometime , store numberic and date value in character field is a good idea
---------------------------------------------------------------
我在为我的程序写接口的时候遇到了这个问题
我用了动态sql进行处理
让用户自己进行表结构设计
不过那个存储过程写的也挺麻烦的
而且每该一次都会丢失数据
除非再为数据进行备份
---------------------------------------------------------------
我现在搞的一套系统就允许用户自己在任何表中添加字段,实现的原理是系统自己建立了一套数据字典,比如有以下的几个表:
CREATE TABLE tab
( tabnum INTEGER NOT NULL,
tabname VARCHAR2(18) NOT NULL,
tabnametextnum INTEGER NOT NULL,
descr VARCHAR2(50) NOT NULL,
descrtextnum INTEGER NOT NULL,
tabhead VARCHAR2(18) NOT NULL,
...
);
CREATE TABLE col
( tabnum INTEGER NOT NULL,
colnum INTEGER NOT NULL,
colname VARCHAR2(18) NOT NULL,
colnametextnum INTEGER NOT NULL,
descr VARCHAR2(50) NOT NULL,
descrtextnum INTEGER NOT NULL,
appldatatype INTEGER NOT NULL,
format VARCHAR2(50) NOT NULL,
formattextnum INTEGER NOT NULL,
...
);
这里的tab和col表用来控制系统中所用的表和每个表中的列,表结构我简化了,实际上要复杂的多。这样的系统灵活性很好,但是代码量大大增加了。