2011-12-16 27 views
0

示例:一個數據庫,其中包含不同金屬(密度,顏色,熔點等)的名稱和屬性,我可能從一個來源(網站,書籍......)和熔點從另一個,我想使它可以從任何給定的價值來源從哪個來源可檢索。有沒有一種巧妙的方法將字段鏈接到另一個字段?

簡單的解決方案是爲所有屬性創建一列「密度」和一列「密度源」等,但這似乎是解決這個問題的一種非常詳細的方式。是的,'Density Source'可以是一個簡單的整數,其他表格拼出來源。

從某種意義上說,我期待在腳註中添加一個腳註。

+0

不會吧使用[MaterialID,Property,Value,Source]創建表格並將其填入[mercury,'meltingPoint',-39,「website here」? – jclozano 2011-12-16 18:19:48

+0

數據庫設計沒有「正確的方法」。您應該考慮您的用例,數據特徵等。您期望哪些查詢應該快速運行?多少數據? – kan 2011-12-16 18:28:02

回答

0

最難的答案是,你不會得到任何少於詳細信息的表格,然後每個信息位都有一個鏈接返回到每個源。

你可以做的是爲你的密度,顏色,熔點等創建可能的來源矩陣,然後爲它分配一個通用的「SourceKey」,這樣你只需要在實際中存儲一個源財產表。然後,爲了獲得密度源,你可以這樣做:

select 
    s.SourceName as DensitySource, 
    m.* 
from 
    metals m 
    inner join SourceMatrix sm on 
     m.SourceKey = sm.SourceKey 
    inner join Source s on 
     sm.DensitySourceKey = s.SourceKey 

完全取決於你能有多少組合有,以及是否這就是效率可言,雖然。數據庫存儲關係,但不存儲血統。

0

如果要標記整列,可以使用SQL Server的extended propertiesMySQL COMMENT選項。如果你想每列和每行,另一列添加標記這些都是你的數據庫

的關係設計的「外部」,因爲它是相關中的數據模型來存儲

相關問題