我一直在试图找到答案,我不知道描述它的最佳方式。单桥表还是有更好的方法吗?
基本上,我有3个源表,每个都有uniqueidentifier键。我们将这些表格称为Skill1,Duty2,Custom3。除了它们是特定工作的属性之外,它们不以任何方式与对方相连(容易)。我想从现在的8个不同的表格(我将称之为Resource1 - Resource8)将这些技能与资源联系起来(例如:一本书,一个URL,一个课程ID)。这是为了允许将这些类型的资源的任何组合链接到包含在所述3个“技能表”中的任何属性。
我想出了很多奇怪的设计,但我在下面解决:
表 - 列 - > FK
Skill1 - SkillUniqueId -> BridgeTable.AttributeUniqueId
Duty2 - DutyUniqueId -> BridgeTable.AttributeUniqueId
Custom3 - CustomUniqueId -> BridgeTable.AttributeUniqueId
BridgeTable - AttributeUniqueId, ResourceUniqueId, AttributeType, ResourceType
Resource1 - ResourceUniqueId -> BridgeTable.ResourceUniqueId
Resource2 - ResourceUniqueId -> BridgeTable.ResourceUniqueId
Resource3 - ResourceUniqueId -> BridgeTable.ResourceUniqueId
...etc.
“问题”这个简单的设计是我有一个将3个“属性”表连接到8个资源表的桥接表,我必须在存储过程(以及可能的应用程序使用这些表)中使用AttributeType和ResourceType,以便利用正确的表。
有没有更好的方法将这3个属性表连接到资源而不需要复制其他地方已存在的数据? (即:用所有可能的属性组合来创建一个“工作”表,或将我的所有资源表拼凑成一个表,并包含大量可为空的列)
为什么8个资源表?7我可以理解 - 技能,职责和习惯各为3,技能和职责,职责和自定义,技能和自定义各加3分,全部为1 3.什么是第8张桌子? – 2010-08-04 17:13:57
我需要的一些资源是内部业务资源...我不认为我已经解释得很好,因为你能够捕捉到我正在做的事情。这些资源描述了培训资源(URL,书籍,内部培训代码,内部方法ID,LMS ID/URL等) – Andir 2010-08-04 17:33:29