我有多组度量。每个集合都有多个值。数据目前在电子表格中,我想将其移至真实的数据库。简单的数据库设计问题 - 度量集
在电子表格中,每个组测量值是在其自己的列,即
1 | 2 | 3 | ...
0.5 | 0.7 | 0.2 | ...
0.3 | 0.6 | 0.4 | ...
等。如果我有10个数据集并且每个数据集都有8个测量数据,那么我就可以得到一个有80个数值的8x10表格。
为了将数据库置于正常形式,我知道它应该设计为每个新集合添加行而不是列。我认为这意味着这些表应该安排类似于(MySQL语法):
create table Measurement(
int id not null auto_increment,
primary key(id)
);
create table Measurement_Data(
int id not null auto_increment,
double value not null,
int measurement,
primary key(id),
constraint fk_data foreign key(measurement) references Measurement(id)
}
这是正确的吗?结果是只有一个自动生成列的表(当然,我可以稍后添加更多)以及另一个表,每个数据集都存储为“纵向”,这意味着在给定上述值的情况下表将有800行。这是解决这个问题的正确方法吗?这也意味着我需要添加数据,我需要在Measurement表中插入一行,获取其分配的pk,然后将所有新行添加到Measurement_Data表中,对吗?
我明白任何意见,
肯
尽管您想将Measurement_Data中的测量值作为外键进行编码(如果您的数据库支持),但听起来对我来说是正确的。 – 2009-10-12 00:11:01