这是我的实际表架构(我正在使用Mysql):
Table experiment :
code(int)
sample_1_id
sample_2_id
... until ... sample_12_id
rna_1_id
rna_2_id
... until ... rna_12_id
experiment_start
如何优化part:sample_n_id和rna_n_id(所有都是bigint(20)并允许null = true)?
关于价值观:我们可以:ex: sample_1_id = 2, Sample_2_id = 5,...
注意:值可以更新。
想法? 感谢。
编辑:
我有3张桌子:
Table experiment :
sample_1_id .. sample_12_id (not useful with normalization)
rna_1_id .. rna_12_id (not useful with normalization)
With normalization I should have :
Table Rna :
id
experiment_id
rna_id
rna_name
sample_id (link to a sample in Table sample)
Table Sample :
id
experiment_id
sample_id
sample_name
因此,Rna和Sample表之间存在关系。
示例:
Table rna :
id =1
experiment_id = 1
rna_id = rna1
rna_name = name1
sample_id = 2
Table Sample :
id = 2
experiment_id = 1
sample_id = Sample1
sample_name = SampName
因此,sample_id = 2 =>在表格示例中:id = 2 => sample_id = Sample1
答案 0 :(得分:3)
我不确定您正在寻找什么样的优化,但这绝对应该归一化为定义实验样本和实验-rna关系的表格,例如:
experiments_to_samples
id | experiment_id | sample_id |
experiments_to_rnas
id | experiment_id | rna_id |
这样,每个experiment
都可以拥有无限数量的sample
和rna
引用。
这假设有一个表samples
和一个表rna
。
答案 1 :(得分:0)
将表格规范化为:
Table experiment :
code(int)
experiment_start
Table sample:
sample_id
code fk to experiment.code
table rna:
rna_id
code fk to experiment.code