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

时间:2011-12-13 15:02:08

标签: database-design relational-database

我正在试图弄清楚如何为我正在开发的应用程序设计数据库。我只是想将它用作数据存储区来保存和访问配置参数。我以前从未设计过数据库。

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

我可以代表这样的系统:

<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>

我不确定这将如何在表格和列中表示。我应该使用什么方法将其转换为关系数据库模型?

1 个答案:

答案 0 :(得分:0)

标记属性将转换为表格列。每个子组件都由外键链接。这可以用一张表来完成。

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