.net 动态连接建议
我在寻求一些建议,请耐心听我解释 我现在的情况是,我根据内容类型的操作生成一个新闻提要,表的基本形式可能类似于:.net 动态连接建议,.net,asp.net,sql,.net,Asp.net,Sql,我在寻求一些建议,请耐心听我解释 我现在的情况是,我根据内容类型的操作生成一个新闻提要,表的基本形式可能类似于: <userid, int, FK> | <actionType, int, FK> | <contentType, int, FK> | <objectID, int> 比如说。。。userid 2000,在contentType 1和object id 2001上执行了操作类型1 objectID是对象相对于内容类型的唯一id。。随
<userid, int, FK> | <actionType, int, FK> | <contentType, int, FK> | <objectID, int>
比如说。。。userid 2000,在contentType 1和object id 2001上执行了操作类型1
objectID是对象相对于内容类型的唯一id。。随后不能由约束强制,因为根据ContentType,表将不同
现在,以我在2000年、1年、1年、2001年之前给出的示例为例,为了在站点中显示此内容,我需要查询对象,假设contenttype“1”为“用户”,action为“slapped”,以便生成此内容:
卡尔打了乔治一巴掌
我会加入userid字段以获取karl,但是需要另一个查询来获取user2001详细信息
这有意义吗
因此,我最终遇到了这样一种情况:要选择前10个新闻提要,我需要至少11个查询,一个用于初始查询,然后是10个查询
我想要一个更好的方法来实现这一点,我能想到的唯一方法是在存储过程中完成这一切,使用一个大case语句、一个游标和一些临时表:x
欢迎任何建议
提前感谢,,
卡尔我认为有两种可能性,可能还有其他解决方案: 1/创建一个视图,该视图沿
CREATE VIEW ObjectIds AS (
SELECT <ID_OF_CONTENTTYPE_1> as ContentType, ID from <TABLE_1>, <possibly other needed columns>
UNION SELECT <ID_OF_CONTENTTYPE_2> as ContentType, ID from <TABLE_2>, <possibly other needed columns>
-- etc
)
然后可以使用此视图而不是原始表进行联接
2/重构事实表以使用真实的FK。这意味着你必须事先知道所有的“内容类型”。你为什么打乔治耳光?哦,对不起。我想问的是,有多少种不同的内容类型?那是固定号码吗?