主表如何实现高效率对应子表?

pfworld 2012-10-20 05:25:27

现在有一个主表可能会涉及到子表A,也可能涉及到子表B,未来肯能会扩展到子表C、子表D...


请问如何建立主表,子表关系呢?


例:

主表
ID name sub
1 赵 s1_A
2 钱 s2_B
3 孙 s4_B
4 李 s1_A

子表A
id name lv
s1_A 一 1
s2_A 二 1
s3_A 三 1
s4_A 四 1
s5_A 五 1

子表B
id name other
s1_B 一 33
s2_B 二 33
s3_B 三 33
s4_B 四 33
s5_B 五 33


现在要查询子表的内容(连接子表内容),请问到底如何建立关系效率高,查询方便?


...全文
330 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
發糞塗牆 2012-10-27
  • 打赏
  • 举报
回复
嘿嘿,也复制过来咯
pfworld 2012-10-27
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20121022/19/979aecd3-57de-44c6-879a-26caad7f4d72.html?seed=1412170724&r=79962641#r_79962641

这里还有一个帖子(同一问题),回复给分!

我里面有自己的解决方案,但是觉得不是太好!
汤姆克鲁斯 2012-10-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

寻求帮助!!
[/Quote]
你拉倒吧,被人回复那么多,你这么想的?

没有最好的只有最适合你的,东西不可能一步做到位的

你先做 然后总结经验 优化 处理吧。
pfworld 2012-10-26
  • 打赏
  • 举报
回复
寻求帮助!!
开启时代 2012-10-23
  • 打赏
  • 举报
回复
1.如果不考虑数据参照完整性就不要使用外键,外键约束会影响插入效率。
2.主表按照sub建立聚合索引,子表按Id建立聚合索引,保证查询噌噌的。
有以上两点 足矣。
pfworld 2012-10-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 8 楼 的回复:

关系是一个主表对应多个子表,而且同一时刻只对应其中一个子表,如何可以快速查询到主表对应的子表?

是增加字段说明对应的子表还是把所有子表外键设置到主表多个外键字段?

外键是用来约束数据一致性的,不但不能提高查询速度,反而影响增删改查
自己慢慢做吧,做几个项目就有经验了,别人东扯一句西侃一句的会让你无所适从
[/Quote]

普通的关系表都没有什么问题,这个比较麻烦,寻求好方法?主要是设计关系留够下一步扩展和方便查询(应为子表要几个,而主表如何找到对应的子表)


SQL77 2012-10-22
  • 打赏
  • 举报
回复
如果你只是SUB A,B,C这分类。没太大必要分表。如果数据量确实大。一个子表分区应该就行了。

具体还要看你的实际业务需求
汤姆克鲁斯 2012-10-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

关系是一个主表对应多个子表,而且同一时刻只对应其中一个子表,如何可以快速查询到主表对应的子表?

是增加字段说明对应的子表还是把所有子表外键设置到主表多个外键字段?
[/Quote]
外键是用来约束数据一致性的,不但不能提高查询速度,反而影响增删改查
自己慢慢做吧,做几个项目就有经验了,别人东扯一句西侃一句的会让你无所适从
pfworld 2012-10-22
  • 打赏
  • 举报
回复
关系是一个主表对应多个子表,而且同一时刻只对应其中一个子表,如何可以快速查询到主表对应的子表?

是增加字段说明对应的子表还是把所有子表外键设置到主表多个外键字段?
快溜 2012-10-22
  • 打赏
  • 举报
回复
简单的主外键关系。
  • 打赏
  • 举报
回复
主表与字表相应的链接列上建立索引。
shoppo0505 2012-10-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
如果你只是SUB A,B,C这分类。没太大必要分表。如果数据量确实大。一个子表分区应该就行了。

具体还要看你的实际业务需求
[/Quote]
+1, 我也是这么觉得。
看楼主的设计,子表的数据应该不是很多。
对于不同的子表,可以使用一个新列来区分子表类型。而且你说每个主表同一时刻只是对应一个,那么这么多子表的设计不符合你的需求的。
pfworld 2012-10-22
  • 打赏
  • 举报
回复
寻求帮助!!
汤姆克鲁斯 2012-10-21
  • 打赏
  • 举报
回复
1、每个表都要有主键
2、主外关联使用int 类型 不要使用字符类型。

以上两点是最基本也是最重要的。
以学习为目的 2012-10-21
  • 打赏
  • 举报
回复
子表A和子表B的id字段作为主表对应的外键
ttpsan550 2012-10-20
  • 打赏
  • 举报
回复
字表建立 外键 、并建立索引!!!!
DBA_磊仔 2012-10-20
  • 打赏
  • 举报
回复
建立外键关系,使用数字型键,不用字符型键可提高效率

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧