Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 动态连接建议_.net_Asp.net_Sql - Fatal编程技术网

.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。这意味着你必须事先知道所有的“内容类型”。

你为什么打乔治耳光?哦,对不起。我想问的是,有多少种不同的内容类型?那是固定号码吗?