Sqlite UNION
发布时间:2020-12-12 19:58:01 所属栏目:百科 来源:网络整理
导读:不知道在android开发的过程中有没有遇到锅这样的情形,两个实体,有各自的属性特征,可是又有相似的属性,在设计表的时候就比较纠结。一种方案,设计成一张表,这样做的好处是相似的属性可以公用一个字段,而且更重要的是,这样的相似的实体往往还会在UI上显
不知道在android开发的过程中有没有遇到锅这样的情形,两个实体,有各自的属性特征,可是又有相似的属性,在设计表的时候就比较纠结。一种方案,设计成一张表,这样做的好处是相似的属性可以公用一个字段,而且更重要的是,这样的相似的实体往往还会在UI上显示在一个listview,这样用一个cursor,方便大量数据的显示。可是这样也有不好的地方,首先在结构上,一个实体扩展的时候,改表结构,另一个实体不可避免的也会受到影响,而且在数据结构上也不清晰。 那么怎么解决两张表的情况下,在一个listview显示的需求呢?这个时候用view来做一个临时表,我认为是一个不错的选择。 例如下表:一个sms表有body字段和tel字段 create table sms ( _id integer,body text,tel text ) 表二:mms表,有text字段和attachment字段,和sms一样都有tel字段 create table mms ( _id integer,text text,tel text,attachment text )那接下来怎么做一个临时的view来合并两张表呢?可以使用union,可是union要求两个表字段必须相同列数,并且字段类型相似,这个我们用as来做列扩展 如下: create view sms_mms2 as select _id,body,tel,null as text,null as attachment,'sms' as type from sms union select _id,null as body,text,attachment,'mms' as type from mms这样在listview显示的时候可以用type来区分,而且数据又在一个cursor里。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |