社区
MS-SQL Server
帖子详情
急急!!!数据库设计的人员个个都头痛的问题!用ID关联还是用字符串好?
MiracleAizw
2005-11-09 09:49:05
一直困惑多年,我在建立主子表的关系时经常碰到这样的问题,有的时候难下定夺。
如订单表有OrderID整型主键,OrderNo唯一键。生产单有ProductionID,然后应该用OrderID与订单关联好还是用OrderNo好。 如果用OrderID,每次查询都要关联查OrderNo。如果用OrderNo,执行效率会低。
各位都用什么办法呢?
...全文
524
16
打赏
收藏
急急!!!数据库设计的人员个个都头痛的问题!用ID关联还是用字符串好?
一直困惑多年,我在建立主子表的关系时经常碰到这样的问题,有的时候难下定夺。 如订单表有OrderID整型主键,OrderNo唯一键。生产单有ProductionID,然后应该用OrderID与订单关联好还是用OrderNo好。 如果用OrderID,每次查询都要关联查OrderNo。如果用OrderNo,执行效率会低。 各位都用什么办法呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Dark13
2006-05-05
打赏
举报
回复
从范式来说ID是没有必要的,当然,范式不等于实际使用,实际使用来说要不要ID都可以,不要使用方便点,当然修改的时候有ID稍微好点。不过对于订单之类的营销库存系统来说,系统通常都不会很大,除非是大型物流系统。
BlueDog
2006-05-05
打赏
举报
回复
如果是大型系统最好同时两者都存在
用整型数据做主键,称为内码
用字符串型的辅助,为外码(用户可以使用它来查询)
这样做的好处是订单号规则可以改变,而且查询效率不差
Dark13
2006-05-03
打赏
举报
回复
通常都用ID关联比较好,ID的唯一性好,而且往往是索引
不过如果确实出现ID的地方都要出现NO的话,你不如把两个列都加到那个表里去,这样就一目了然了
不过我奇怪,你的NO既然已经是唯一键了,为什么还要弄个ID去做主键,不是多此一举么
wwh999
2006-05-03
打赏
举报
回复
这个问题提的不错,顶一下!
可惜楼主的表达好像有点问题:
究竟OrderNO是自动编号,还是OrderID是?
应该讨论的是,在一张表是存在自动编号和能唯一标识行的主键列时,使用哪一个作为外键。?
suntt
2006-05-03
打赏
举报
回复
主键最好是使用无现实意义的
hyrongg
2006-05-03
打赏
举报
回复
我也同样好奇,orderNo唯一健,设为主健,去掉orderID不是更好吗?
danisluo
2005-11-10
打赏
举报
回复
用Orderid关联
wangdehao
2005-11-10
打赏
举报
回复
我感觉用OrderNo做主键,通过OrderNo关联也没什么不妥,查询速度应该不次于原来那种方式,等高手.......
火电
2005-11-10
打赏
举报
回复
id是主键,即为索引,查询方便
记录条数多时有优势
如果认为sql执行效率低可以用存储过程,编译后执行,就ok
fishmans
2005-11-09
打赏
举报
回复
当然是用唯一键关联好啦
存在这样的不如分主子表
iwl
2005-11-09
打赏
举报
回复
其实应该是个有利弊的
1、如果用OrderID连结,那么即使改了OrderNo也没有关系 照样可以连结上找到你需要的记录
但是如果你把改单删除了,重新做一个单,尽管OrderNo是一样的,但是还是连接不上。
2、如果用OrderNo连结,情况巧好相反。
3、具体怎么用,就看你的要求是什么 ,用OrderNo,执行效率会也不一定会低,你可以在OrderNo上面建一个聚集的索引,执行起来就会好很多。
希望对你有帮助
wgsasd311
2005-11-09
打赏
举报
回复
用主键关联
lisiyong
2005-11-09
打赏
举报
回复
OrderID
好点
MiracleAizw
2005-11-09
打赏
举报
回复
请讲讲你的理由
该问题经常碰到,用ID,主表关联太多的时候,查询语句麻烦。每次写一串关联,查出NO与Name.
但是,如果用NO,就不用再去关联了。写SQL语句简单。
vivianfdlpw
2005-11-09
打赏
举报
回复
OrderID
点点星灯
2005-11-09
打赏
举报
回复
我选择OrderID,不用OrderNo
请教高手关于EXCEL行列转换的
问题
!谢谢!
急急
急!!!
一般的方法行不通,可能要用到宏或者编一个程序,请帮忙!
解析启动Oracle9i中OEM或OMS的常见
问题
近来,浏览BBS时,常看到“
急急
急!如何启动OMS和OEM?”的字眼,本文介绍了启动Oracle9i中OEM或OMS的常见
问题
的解决办法。
Oracle 10G中的回收站
常常看到开发
人员
误把表删除,
急急
忙忙找DBA 来想办法的情况。相信随着10G的大范围应用,这种情形应该比较少见了,我们可以充分利用10g的闪回功能来避免大量的人工误操作。DBA管理上的相关信息可以从USER_recyclebin...
远程桌面登录蓝色屏幕、不显示桌面怎么解决?
不要
急急
忙忙的让机房值班给你重启机器,因为此时除了远程连接不可用,其他一切应用是不受影响的,网站依旧可以打开,FTP依旧可以上传下载,不属于紧急故 障。 解决办法1: 远程桌面连接-》选项-》高级-》去掉“主题...
微信小程序开发问答《七十七》encryptedData解密 & canvas 设置opacity:0无效 ... ..
我已开始也发现不能用,所以就直接添加的class。 2、这几天面试,面试官让我自己做一个简单的小程序。最后微信我写的页面上数据都是死的。直接在页面写上去的。请问下,如何和
数据库
链接,从而获取数据,并前台...
MS-SQL Server
34,588
社区成员
254,588
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章