oracle 问题方案解决

本文详细介绍了如何通过配置表定义属性,并利用视图整合属性数据,方便查询与操作。重点展示了视图如何根据配置表中的特定属性值进行聚合,以适应实际应用需求。
--tbl_config 属性配置表
Name            Type                         Comments     
----------           ------------                   ------------ 
ID                     NUMBER(30)                 
COLUMID       VARCHAR2(36)    产品类型ID     
PROPNAME   VARCHAR2(50)   属性名称     
PROPCODE   VARCHAR2(50)   属性嘛      
CREATEBY     VARCHAR2(36)   创建人       
CREATETIME DATE                      创建时间         
UPDATEBY     VARCHAR2(36)   更新人        
UPDATETIME DATE                      更新时间        

ISAVIABLE       VARCHAR2(1)     是否生效


---tbl_props 数值表
Name                                 Type                      Comments         
-----------                              ------------             ---------------- 
ID                                       VARCHAR2(36)                   
COLUMNID                      VARCHAR2(36)  产品类型ID       
SUBCOLUMNID              VARCHAR2(36)  具体产品ID          
PROPID                            NUMBER(30)    属性ID        
PROPNAME                     VARCHAR2(50)  属性名称 
PROPCODE                    VARCHAR2(50)  属性码
PROPVALUE                   VARCHAR2(50)  属性值             
CREATEBY                      VARCHAR2(36)  创建人            
CREATETIME                  DATE                    创建时间            


如上的俩张表,上一个表存放了某种类型的属性的一些配置;

下表则是对某种类型的具体的某个产品的相对应的属性值得一个记录情况。这时就有个情况了,

如果对某种类型进行了添加了某个属性,这时要用新增加的属性作为条件进行查询操作。

处理:建立一个视图:


CREATE OR REPLACE VIEW VW_PROPERTIES AS
SELECT t.COLUMNID,t.SUBCOLUMNID,
MAX((SELECT PROPVALUE FROM tbl_props WHERE ID =t.id AND PROPID=1)) AS SJ,
MAX((SELECT PROPVALUE FROM tbl_props WHERE ID =t.id AND PROPID=2)) AS PJ,
MAX((SELECT PROPVALUE FROM tbl_props WHERE ID =t.id AND PROPID=3)) AS LYYQ,
MAX((SELECT PROPVALUE FROM tbl_props WHERE ID =t.id AND PROPID=4)) AS BGSPJ,
MAX((SELECT PROPVALUE FROM tbl_props WHERE ID =t.id AND PROPID=5)) AS YQKJ,
MAX((SELECT PROPVALUE FROM tbl_props WHERE ID =t.id AND PROPID=6)) AS YJJG,
SYSDATE AS dqsj
FROM tbl_props t

GROUP BY t.COLUMNID,t.SUBCOLUMNID;

上面的视图建立语句其实就是根据属性表中的配置(配置是写死的,如果新增了一个属性,还要改动视图的哦),

把一个一个的配置的属性,列成了一列一列的,这样就符合我们的一些思维了。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值