这是我的实际表模式(我使用的是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

如何优化这两个部分:sample_n_id和rna_n_id(都是bigint(20)并且允许null=true)?
关于价值观:我们可以有:例如:
样本_1_id=2,
样本_2_id=5。。。
注意:可以更新值。
思想?
谢谢。
编辑:
我有三张桌子:
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和样本表之间有一定的关系。
例子:
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=>在表sample:id=2=>sample_id=Sample1中

最佳答案

我不确定你在寻找什么样的优化,但这绝对应该被标准化为一个定义实验样本和实验rna关系的表,例如:

experiments_to_samples
id  |  experiment_id | sample_id |


experiments_to_rnas
id  |  experiment_id | rna_id |

这样,每个experiment都可以有无限数量的samplerna引用。
这是假设有一个表samples和一个表rna

10-07 12:30