我正在努力弄清楚如何为我正在开发的应用程序设计数据库。我只是想把它用作保存和访问配置参数的数据存储。我从来没有设计过数据库。
我的应用程序为一个有许多组件的系统配置设置。有些组件是唯一的,有些组件有子组件。每个组件都有多个参数,其中一些是单个值,而另一些则包含可变数量的记录。
我可以这样表示这个系统:
<System>
<A P1="" P2="">
<E P3="" P4="" P5="" P6="" />
<F P7="" P8="" P9="" P10="" />
<G>
<H>123</H>
<H>123</H>
<H>123</H>
<H>123</H>
<H>123</H>
</G>
</A>
<B P1="" P2="">
<E P3="" P4="" P5="" P6="" />
<F P7="" P8="" P9="" P10="" />
<G>
<H>123</H>
<H>123</H>
<H>123</H>
</G>
</B>
<C P1="" P2="">
<E P11="" P12="" P13="" P14="" />
<I P15="" P16="" P17="" P18="" P19="" />
</C>
<D>
<E P11="" P12="" P13="" P14="" />
<I P15="" P16="" P17="" P18="" P19="" />
</D>
</System>
我不确定这将如何在表和列中表示。我应该使用什么方法将其转换为关系数据库模型?
标签属性将转换为表列。每个子组件都由一个外键链接。这可以用一张表来完成。
// from scratch
create table system (
id char(1)
parent char(1)
p1 char(1)
p2 char(1)
p3 char(1)
p4 char(1)
p5 char(1)
);
insert into table system values("A",null,"","",null,null,null);
insert into table system values("E","A","","","","",null);
insert into table system values("F","A","","","","",null);
insert into table system values("G","A",null,null,null,null,null);
insert into table system values("H","G","123",null,null,null,null);
insert into table system values("H","G","123",null,null,null,null);
insert into table system values("H","G","123",null,null,null,null);
insert into table system values("H","G","123",null,null,null,null);
insert into table system values("H","G","123",null,null,null,null);
...