本公司最近开发个项目 由于该项目业务繁多 所以在设计数据库业务表的时候想采用动态表的方式来处理
就是所有的业务表都放在一个表里面 而每个不同的业务只需设置下该表对应字段即可小弟没什么思路 求思路或相关参考
就是所有的业务表都放在一个表里面 而每个不同的业务只需设置下该表对应字段即可小弟没什么思路 求思路或相关参考
解决方案 »
- 关于一个项目的ER图的设计问题
- Incremental checkpoint
- 问个三个表的查询问题
- 利用v$session的触发器,编译报ora-00942错
- oracle的function如何转成Sql server2000的function
- Archive process error: ORACLE Instance oemrep - Can not allocate log, archival required
- 去掉某字段重复值的语句,在SQL Server中可以执行,在Oracle中怎么改?
- 卸载ORACLE后,删除了原文件夹,重新安装ORACLE, 又重新创建原有的数据库,却报已经存在服务? 如何删除原有的服务啊?
- system不能创建其他用户的表,why?
- 为什么 求解答
- oracle10.2,"启动 Database Control 时出错"日志如下,求解决方法!
- oracle 不能用WITH NOCHECK吗,为什么下面这句总提示非法的 ALTER TABLE 选项
http://topic.csdn.net/u/20081106/21/051c79db-4c4b-4a5e-b753-fb4ceb104bd4.html
我要把所有的业务的数据都放在这个表里面定义就不是很明确
我个朋友给我这样的解决方法 大家看看实用性如何:
建A ,B 2表
A表 数据字典表 40个字段 用来说明B表对应字段代表的意思
B表 业务数据内容表 42个字段 存储相关业务数据以后如果 新增个业务只须在A表添加条记录 在B表的设个外键关联A表
这样就能确定B表中的数据的业务类型
比如create table totaltable (col1 varchar2(100),col2 number,col3 number(10,2),col4 date,col5 ...);
把所有的字段都罗列出来
再写个存储过程:
create or replace pro (incol varchar2,tablename varchar)
as
sqlstr varchar2(100);
begin
sqlstr:='create table '||tablename||'as select '||incol||' from totaltable';
execute immediate sqlstr;
end;
pro('col1 col2',tablename);
来创建仅仅含有col1,col2字段的并命名为tablename;
大概意思就是这样
如table1表业已生成,且其上有了数据时,此时要增加三个字段,可能还要在其上增加索引。
这时可以基于C表上生成table1的修改等语句。不过,本人总认为这种共享(傻瓜)式的定义基表的方法,只能做一些较浅的东西,
字段、主键、索引的建立较容易,
而表的划分、还有trigger,procedure等要想灵活地实现,好象困难不小。呵呵。