2013-12-13 134 views
1

我必須在我的數據庫中創建一個新表。從一種形式,我將信息發送到數據庫:MySQL數據庫組織

-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 

您認爲這個組織是正確的嗎?或者我應該改變什麼?

非常感謝你,人。

+2

我們有些人不是生物學家。如果不瞭解我們可能難以提供幫助的物體的相互關係。 – Strawberry

+1

對我來說這似乎很好:) –

+0

如果您想獲得更多幫助,請爲您的餐桌命名。例如,我不明白「id_send」是什麼。 – kmas

回答

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