我必须在我的数据库中创建一个新表。从表单中,我将向数据库发送信息:
-Gene name
-Chromosome
-Sequence
-Organism
另一方面,我有另一张表(表1),其中包含user id
,user name
和password
。所以我想再创建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
您认为这个组织是否正确?或者我应该改变什么?
非常感谢你们,人们。
答案 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))