示例:一個數據庫,其中包含不同金屬(密度,顏色,熔點等)的名稱和屬性,我可能從一個來源(網站,書籍......)和熔點從另一個,我想使它可以從任何給定的價值來源從哪個來源可檢索。有沒有一種巧妙的方法將字段鏈接到另一個字段?
簡單的解決方案是爲所有屬性創建一列「密度」和一列「密度源」等,但這似乎是解決這個問題的一種非常詳細的方式。是的,'Density Source'可以是一個簡單的整數,其他表格拼出來源。
從某種意義上說,我期待在腳註中添加一個腳註。
示例:一個數據庫,其中包含不同金屬(密度,顏色,熔點等)的名稱和屬性,我可能從一個來源(網站,書籍......)和熔點從另一個,我想使它可以從任何給定的價值來源從哪個來源可檢索。有沒有一種巧妙的方法將字段鏈接到另一個字段?
簡單的解決方案是爲所有屬性創建一列「密度」和一列「密度源」等,但這似乎是解決這個問題的一種非常詳細的方式。是的,'Density Source'可以是一個簡單的整數,其他表格拼出來源。
從某種意義上說,我期待在腳註中添加一個腳註。
最難的答案是,你不會得到任何少於詳細信息的表格,然後每個信息位都有一個鏈接返回到每個源。
你可以做的是爲你的密度,顏色,熔點等創建可能的來源矩陣,然後爲它分配一個通用的「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
完全取決於你能有多少組合有,以及是否這就是效率可言,雖然。數據庫存儲關係,但不存儲血統。
如果要標記整列,可以使用SQL Server的extended properties或MySQL COMMENT選項。如果你想每列和每行,另一列添加標記這些都是你的數據庫
的關係設計的「外部」,因爲它是相關中的數據模型來存儲
不會吧使用[MaterialID,Property,Value,Source]創建表格並將其填入[mercury,'meltingPoint',-39,「website here」? – jclozano 2011-12-16 18:19:48
數據庫設計沒有「正確的方法」。您應該考慮您的用例,數據特徵等。您期望哪些查詢應該快速運行?多少數據? – kan 2011-12-16 18:28:02