我正在创建一个数据库,通过不同的来源测量单个对象的不同属性。我有一个包含源列表以及源描述和源ID的表。我想创建一个表,列出我将用于特定对象的特定测量的源。所以在这个表中我将有一个objectID字段和我要测量的属性。对于我想要映射sourceID的每个属性。下图描述了我的设计
我想知道在这种情况下我会有什么样的映射? 在我看来,我将必须将Object表中的每个单独的属性列映射到源表中的sourceID。有了这个,我将有多个1:n映射。这样好吗? 我正在使用MySQL工作台。请告诉我这是否可以更好地设计。
修改#1 对于每个对象,我想查询哪个是特定"属性的来源"领域。获取此信息后,我将使用给定的源将该特定属性的数据记录在不同的表中。
答案 0 :(得分:2)
如果你看一下你的第一个陈述
" ...单个对象的属性通过不同的来源测量 ..."
你实际上可以直接看到你可能正在寻找3张桌子。您建议的来源表看起来不错。我建议对象表看起来更像
ObjectId
ObjectName
ObjectDescription
... other object details (except measurement)
您的第三个表格是您的度量表格,可能看起来像这样
MeasurementId
ObjectId - reference to Object table
SourceId - reference to Source table
DatePerformed
MeasurementValue
Success
Notes etc
这里的好处是
然后你可以得到一个结果列表,如果你那么做
SELECT ObjectId, SourceId, DatePerformed, MeasurementValue
FROM Measurement
WHERE ObjectId = <your Object>
[AND/OR] SourceId = <your source>