为具有许多子组件的系统设计数据库



我正在努力弄清楚如何为我正在开发的应用程序设计数据库。我只是想把它用作保存和访问配置参数的数据存储。我从来没有设计过数据库。

我的应用程序为一个有许多组件的系统配置设置。有些组件是唯一的,有些组件有子组件。每个组件都有多个参数,其中一些是单个值,而另一些则包含可变数量的记录。

我可以这样表示这个系统:

<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);
...

最新更新