怎么增加冗余列

yingkk 2012-09-28 11:13:40
数据库表规范化后由于表很多,而连接多个表会降低查询速度,一般可以增加冗余列来减少频繁连接。但是怎么增加冗余列?

产品表
产品ID 产品名称

方案表
方案ID 方案名称 方案描述 方案发起人 产品ID

部件表
部件ID 部件名称 部件价格 方案ID

按上面数据表建立表间关系后,由于字段{方案名称}要频繁用到,给‘部件表’增加{方案名称}冗余列应该怎么做?
部件ID 部件名称 部件价格 方案ID 方案名称
还是:
部件ID 部件名称 部件价格 方案名称

注:字段{方案名称}也是不重复的
...全文
342 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingkk 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

你可以考虑减少表的数量,将一些列数较少的表去掉,将属性值合并到它的主表中去,虽然数据可能会有冗余,但只要在前台程序中解决好,一般不会有问题.
[/Quote]
有点迷糊了,表多的时候要和合成列减少表提高效率,但当一个表有很多列的时候要拆分列来提高效率。这平衡怎么把握呀?
-晴天 2012-09-28
  • 打赏
  • 举报
回复
你可以考虑减少表的数量,将一些列数较少的表去掉,将属性值合并到它的主表中去,虽然数据可能会有冗余,但只要在前台程序中解决好,一般不会有问题.
水族杰纶 2012-09-28
  • 打赏
  • 举报
回复
可以找下海爷的写的博客
适当的冗余是有必要的
yingkk 2012-09-28
  • 打赏
  • 举报
回复
当然要是只有这么几个表是不需要弄那么复杂,但实际有好几十个表,可能更多,用SQL命令JOIN一大堆的表来查询,速度应该会慢,但增加冗余列是不是能提高查询速度心理也没底。
汤姆克鲁斯 2012-09-28
  • 打赏
  • 举报
回复
方案ID 是需要你关联的,这个不能少。
汤姆克鲁斯 2012-09-28
  • 打赏
  • 举报
回复
部件ID 部件名称 部件价格 方案ID 方案名称
快溜 2012-09-28
  • 打赏
  • 举报
回复
方案表
方案ID 方案名称 方案描述 方案发起人 产品ID 方案价格

部件表
部件ID 部件名称 部件价格 方案ID
--小F-- 2012-09-28
  • 打赏
  • 举报
回复
你的表数据难道是在缓存中?需要线性化表?如果不是的话 完全没必要
SQL77 2012-09-28
  • 打赏
  • 举报
回复
只要有相关索引保证查询的速率。
SQL77 2012-09-28
  • 打赏
  • 举报
回复
这个应该没关系。直接关联方案ID就成了。
gogodiy 2012-09-28
  • 打赏
  • 举报
回复
如果一个查询需要关联几十个表的话,那只能说明数据库设计及其不合理。
我觉得你可以先参考9楼晴天大大的提议,看看能不能从数据表上入手进行调整,这个才是基本。
至于其他几位大大说的都没错,关键是具体实行当中一个度的把握。
PS:如果你数据库空间足够,又对数据的添加、更新、删除的速度没有很高的要求,那么就把你查询的语句做成索引视图,通过存储空间来换取查询时间吧~~~

34,590

社区成员

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

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