DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: liangjiping168
今日帖子: 15
在线用户: 20
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 zhangpuqing (pupu) ★☆☆☆☆ -
普通会员
2015/8/26 17:08:17
标题:
数据表设计问题求助 浏览:1477
加入我的收藏
楼主: 我现在在做一个进销存的软件。
有几个基础表比如A,B,C
里面很简单就2个字段,一个ID,一个NAME.
然后现在有个明细表比如是入库的。
里面有些字段是引用之前的A,B,C的。
那么请教,这个明细的字段是设为ID好呢,还是NAME好

一般来说都是做成ID的。
但明细表做数据导入的时候。改入的数据是没那个ID的,只有NAME,怎么办。
----------------------------------------------
-
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2015/8/26 17:26:28
1楼: ID是设主键,要强制随机生成啊,亲。
----------------------------------------------
-
作者:
男 zhangpuqing (pupu) ★☆☆☆☆ -
普通会员
2015/8/26 17:34:59
2楼: 明细表用ID后,导入时就要验证导入的name是否与表里的一致,感觉很麻烦。
不然的话导入的时候不管,在以后查询的时候直接group by 明细表的值做为参数来查。但这样的话如果明细表量大就影响性能了,很纠结呀。
盼望有做过上G一张数据表的兄弟指导下。
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2015/8/26 20:19:18
3楼: ID和NAME都要设,否则出了疑难杂症(比如主从表对不上,串号等等问题),找起来问题来很麻烦。但一般情况下根据ID进行索引即可。另外ID都是数字,生成和比较都非常快。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2015/8/27 17:07:40
4楼: 主表主键用ID,用name作为非空,是否唯一看你的实际需求,子表用ID作为外键,子表里还放个name做什?!
----------------------------------------------
-
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2015/8/27 17:08:34
5楼: group by ID难道不能对子表分组么?要显示Name,就join关联主表啊!
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2015/8/27 17:12:27
6楼: 你没明白我的意思。把Name的内容也写一份在从表里,表面上是冗余数据,但可以大大加快查询速度,不用join了,其次是出问题的时候方便核对,只有ID的情况下,核对非常不靠谱。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2015/8/28 9:28:35
7楼: 数据冗余存储才是出乱子的根源,时间长了都不知道是哪个错了。
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2015/8/28 15:39:21
8楼: 有2点可以证明你的话是错的:
1. 一般情况下是不会出错的,而冗余数据正因为平时用不到、也不会被修改,所以可以作为第一证人来帮助排错。就好比案发现场有证人一样
2. 冗余数据是保证正确数据的有效方法,比如那些汉明码、奇偶校检码等等,实际上它们本身都是产生了冗余数据才可以检查,难道这些理论都是错的吗?即使校检码对不上了,第一时间应该怀疑原始数据出错,而不是校检码本身出错。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2015/9/1 11:12:17
9楼: 存放原始数据和校验数据,与原始数据存多个地方是不同的概念。
name保存两遍和保存个name的校验码是两回事。存放校验码不能叫冗余吧。
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
2015/9/1 16:02:45
10楼: 存放校验码也是冗余,是舍不得再次存放一遍Name之后的折中之举。
----------------------------------------------
只有偏执狂才能生存!
作者:
男 zhangpuqing (pupu) ★☆☆☆☆ -
普通会员
2015/9/1 16:35:27
11楼: 有些偏题的,现感觉是谈冗余的问题。
而怎么解决导入的问题,导入的时候是没有ID的。
----------------------------------------------
-
作者:
男 gdsa (文稠紧) ★☆☆☆☆ -
盒子活跃会员
2015/9/1 16:42:19
12楼: 导入验证性测试
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS