楼主: bisal

[讨论] 一个多表查询的问题(IN)

[复制链接]
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
11#
发表于 2016-9-28 09:08 | 只看该作者
zergduan 发表于 2016-9-27 16:36
你不用想了,他的应用是数据仓库,用星型结构设计的,子表是维度表,主表是事实表;这是一种模型,不是随 ...

星型模型?  星型模型是事实表上一堆的列作为多个外键,指向各个维表的主键。

lz的主表只有一个列做主键啊!  其他子表上主键同时也是外键。

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
12#
发表于 2016-9-28 09:15 | 只看该作者
本帖最后由 zergduan 于 2016-9-28 09:26 编辑
jxc_hn 发表于 2016-9-28 09:08
星型模型?  星型模型是事实表上一堆的列作为多个外键,指向各个维表的主键。

lz的主表只有一个列做主 ...

许多数据仓库的多维模型使用星型连接来建立,但是并不是通过主外键来在数据库层面实现,连接关系的保证完全通过应用层来保证~对于楼主的情况,我只是猜想,一般的应用没必要设计这种星型连接吧,也许我猜的不对~

使用道具 举报

回复
论坛徽章:
7
茶鸡蛋
日期:2013-06-14 13:16:17优秀写手
日期:2013-12-18 09:29:112014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:022015年新春福章
日期:2015-03-04 14:51:122015年新春福章
日期:2015-03-06 11:57:31ITPUB社区OCM联盟徽章
日期:2016-07-13 18:10:08
13#
 楼主| 发表于 2016-9-28 09:31 | 只看该作者
zergduan 发表于 2016-9-27 16:36
你不用想了,他的应用是数据仓库,用星型结构设计的,子表是维度表,主表是事实表;这是一种模型,不是随 ...

呃,不是数据仓库应用,就是OLTP的应用,开始是从范式的角度考虑,将这些一对多的关系拆成若干子表。

使用道具 举报

回复
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
14#
发表于 2016-9-28 09:37 | 只看该作者
bisal 发表于 2016-9-28 09:31
呃,不是数据仓库应用,就是OLTP的应用,开始是从范式的角度考虑,将这些一对多的关系拆成若干子表。

5555 被啪啪啪了~

使用道具 举报

回复
论坛徽章:
7
茶鸡蛋
日期:2013-06-14 13:16:17优秀写手
日期:2013-12-18 09:29:112014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:022015年新春福章
日期:2015-03-04 14:51:122015年新春福章
日期:2015-03-06 11:57:31ITPUB社区OCM联盟徽章
日期:2016-07-13 18:10:08
15#
 楼主| 发表于 2016-9-28 12:45 | 只看该作者

和星型模型没关

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
16#
发表于 2016-9-29 09:38 | 只看该作者
zergduan 发表于 2016-9-28 09:15
许多数据仓库的多维模型使用星型连接来建立,但是并不是通过主外键来在数据库层面实现,连接关系的保证完 ...

就算是星型模型,OLAP应用也不会建物理外键的,只是说有逻辑外键关系。

使用道具 举报

回复
论坛徽章:
86
2015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11优秀写手
日期:2013-12-18 09:29:11日产
日期:2013-10-17 08:44:39马自达
日期:2013-08-26 16:28:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-23 16:55:51马上有房
日期:2014-02-19 11:55:14
17#
发表于 2016-10-8 15:53 | 只看该作者
bisal 发表于 2016-9-28 09:31
呃,不是数据仓库应用,就是OLTP的应用,开始是从范式的角度考虑,将这些一对多的关系拆成若干子表。

适度的冗余对于性能的提升是相当有效的

使用道具 举报

回复
论坛徽章:
86
2015中国数据库技术大会纪念徽章
日期:2015-04-24 16:04:24马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11优秀写手
日期:2013-12-18 09:29:11日产
日期:2013-10-17 08:44:39马自达
日期:2013-08-26 16:28:022013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-23 16:55:51马上有房
日期:2014-02-19 11:55:14
18#
发表于 2016-10-8 15:53 | 只看该作者

想多了

使用道具 举报

回复
论坛徽章:
7
茶鸡蛋
日期:2013-06-14 13:16:17优秀写手
日期:2013-12-18 09:29:112014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:022015年新春福章
日期:2015-03-04 14:51:122015年新春福章
日期:2015-03-06 11:57:31ITPUB社区OCM联盟徽章
日期:2016-07-13 18:10:08
19#
 楼主| 发表于 2016-10-8 22:52 | 只看该作者
sundog315 发表于 2016-10-8 15:53
适度的冗余对于性能的提升是相当有效的

嗯,您说的是,但对于这个例子,如果将子表字段冗余入主表,冗余的字段就有些多了。

使用道具 举报

回复
论坛徽章:
3
Jeep
日期:2013-11-27 13:33:41ITPUB社区OCM联盟徽章
日期:2014-01-22 09:51:49暖羊羊
日期:2015-05-27 10:46:57
20#
发表于 2016-10-11 17:37 | 只看该作者
可以考虑用union all的方式

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表