MySQL数据库组织

时间:2013-12-13 11:00:24

标签: mysql organization genetics

我必须在我的数据库中创建一个新表。从表单中,我将向数据库发送信息:

-Gene name
-Chromosome
-Sequence
-Organism

另一方面,我有另一张表(表1),其中包含user iduser namepassword。所以我想再创建6个表来组织这些信息:

-Table2: id_user + id_send
-Table3: id_seq + sequence
-Table4: id_gene + gene name
-Table5: id_chromosome + chromosome number
-Table6: id_organism + organism name
-Table7: id_send + id_chromosome + id_organism + id_gene + id_sequence

您认为这个组织是否正确?或者我应该改变什么?

非常感谢你们,人们。

1 个答案:

答案 0 :(得分:0)

说要恢复生物学家......

你似乎对这里的代理键很生气 - 而且有些表是多余的。实际上,数据库设计不仅仅是关于如何存储信息及其固有结构,而是您打算如何访问这些数据 - 您没有告诉我们这些数据。

'id_send'应该代表什么并不清楚。

我怀疑(虽然这仍然是猜测工作),你需要的结构看起来更像是这样:

user (user_id, user name, password, PK(user_id))
sequence (sequence_id (auto increment) gene_name, organism_name, 
  user_id, chromosome, PK(sequence_id))
sequence_data (sequence_id, atcgs)

从其元数据中分离序列数据有助于提高性能,并且还允许您拥有具有不同序列的相同生物体的基因(尽管您可以通过在序列表上添加UNIQUE约束来更改此基因。

下表允许您限制输入/应用验证/存储有关您未在说明中包含的entites的其他数据:

genes (gene_name, .... PK(gene_name))
organism (organism_name,.... PK(organism_name))