1

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

-Gene name
-Chromosome
-Sequence
-Organism

另一方面,我有另一个表(表 1),其中user id,user 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

你认为这个组织是正确的吗?或者我应该改变什么?

非常感谢你们,人们。

4

1 回答 1

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 约束来更改这一点。

下表允许您限制输入/应用验证/存储有关您未包含在描述中的实体的其他数据):

genes (gene_name, .... PK(gene_name))
organism (organism_name,.... PK(organism_name))    
于 2013-12-13T11:56:42.010 回答