使用 SQlite 我有一个大型数据库,分为几年: DB_2006_thru_2007.sq3 DB_2008_thru_2009.sq3 DB_current.sq3 它们都有一个名为 hist_tbl 的表,其中包含两列(键、数据)。
要求是: 1. 能够一次访问所有数据。2. 只插入到当前版本。3.随着时间的推移,数据会不断的分裂。4. 访问是通过具有独占访问权的单个程序。5.程序可以接受一些设置SQL,但访问一个或多个数据库时需要运行相同的SQL。
为了统一查看它们,我执行以下操作(实际上是在程序中,但此处显示的是命令行): sqlite3 DB_current.sq3
将数据库“DB_2006_thru_2007.sq3”附加为 hist1;将数据库“DB_2008_thru_2009.sq3”附加为 hist2;创建临时视图 hist_tbl 作为 select * from hist1.hist_tbl union select * from hist2.hist_tbl union select * from main.hist_tbl;
现在有一个 temp.hist_tbl(视图)和一个 main.hist_tbl(表)。当我在不限定表格的情况下选择时,我通过视图获取数据。这是可取的,因为我可以根据我的设置方式对连接视图或单个数据库使用我的罐装 sql 查询。此外,我总是可以插入 main.hist_tbl。
问题1:有什么缺点?问题2:有没有更好的方法?
提前致谢。