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;
上面的视图建立语句其实就是根据属性表中的配置(配置是写死的,如果新增了一个属性,还要改动视图的哦),
把一个一个的配置的属性,列成了一列一列的,这样就符合我们的一些思维了。
本文详细介绍了如何通过配置表定义属性,并利用视图整合属性数据,方便查询与操作。重点展示了视图如何根据配置表中的特定属性值进行聚合,以适应实际应用需求。

被折叠的 条评论
为什么被折叠?



