【发布时间】:2013-10-02 01:20:51
【问题描述】:
我有一个 SQLite 数据库,其中包含一组表。这些表中的所有数据都可以通过某个 id 隔离到一组集合中。例如:
Table A
ID value1 value2
1 asd fgh
2 sdf ghj
Table B
ID ID2 value4
1 10 vbn
2 11 bnm
Table C
ID2 value5 value6
10 asdfg qwer
11 tyui hjkl
每个ID 列将映射另一个ID,每个ID2 将映射到另一个ID2。
我想拿这个数据库,生成一系列较小的数据库,每个数据库结构相同,但只会包含来自1个ID的数据:
Database1.sqlite
Table A
ID value1 value2
1 asd fgh
Table B
ID ID2 value4
1 10 vbn
Table C
ID2 value5 value6
10 asdfg qwer
Database2.sqlite
Table A
ID value1 value2
2 sdf ghj
Table B
ID ID2 value4
2 11 bnm
Table C
ID2 value5 value6
11 tyui hjkl
我可以一个一个地创建表,通过一系列 SELECT 语句收集每个 ID 的所有数据,然后通过一系列 INSERT 语句添加它,但我认为必须有更好的方式。
我的另一个想法是,我可以创建一系列视图,每个视图都将数据隔离为上述格式。从那里,我可以将这些视图系列写成一个 sqlite 文件作为数据库。
我的问题是我的视图生成想法有多现实?是否有可能生成一系列模拟每个表结构的视图,但要说出ID = 1 的位置,然后将这些视图保存为 sqlite 文件?所有这些都需要在 C# 中完成。有没有更好的方法来做我想做的事情?
更多信息 这些表可以有多个具有相同 ID 的行。每个表还需要一些主键/外键。理想情况下,我们可以使用这些较小的表,然后在将来将它们全部压缩到一个更大的表中。
【问题讨论】: