MySQL数据库组织

标签 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

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

非常感谢大家。

最佳答案

作为恢复中的生物学家发言......

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

'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))    

关于MySQL数据库组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20564874/

相关文章:

php - 文件/图像复制

php - 电影放映时间的数据库设计

javascript - 将 MySQL 数据传递给 Javascript

c++ - 计算机中的文件组织/位置

java - 验证 LaTeX 文件,java

java - 组织基于 Java 的游戏的源代码

linux - 如何从染色体 :position numbers? 中删除前导零

PHP mysql 查询返回空白屏幕

r - 补充 DNA 序列

java - 无法将 Comparable 强制转换为实现它的类