| 作者 |
内容 |
| yirun |
请教几个关于数据库设计和实现的问题:多谢·
例如一张客户订单表,有(订单号,客户编号,审核人,制单人,经手人,备注......)
第一、订单号是00000001,00000002等,设置成numeric(8)就会丢失左边的0,设置成char(8),可订单号是主键呀,速度肯定受影响!怎么办?
第二、订单表中的(客户编号,审核人,制单人,经手人)都和别的表有主外键关联,如果要得到一张订单表的清单需要太多的联合查询,你们怎么解决!?
第三、是不是每个表不管有无必要都要加个备注字段?
第四、一般的表都有类型,而类型表一般只有(编号,字段),差不多,是把各个类型表合在一起呢,还是每个表单独设置类型表?
请赐教,谢谢! |
| 02/01/17 09:32 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| yirun |
一个表引用太多的表或者一个表被过多的表引用
应该不好吧,是否有什么参考的评价方法或者替代方案? |
| 02/01/17 09:36 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| 暮寒 |
我先问你一个问题
我先问你一个问题 为什么将字段类型设置成char(8)速度就受到影响 |
| 02/01/17 09:43 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| johnbean |
回复:
请教几个关于数据库设计和实现的问题:多谢·
1.对于数据库而言, char和integer的检索应该速度不会相差很大,要不,你可以设置Identity自动增1的列作为PrimaryKey也行的
2. 多表查询的话,其实一个SQL语句就可以搞定了,我们作的查询曾关联过大概有十个表的吧,最主要是做好关联就行了
3. 看实际的情况,该要就要没必要的话,你放这么一个字段在那里干什么?
4. 我觉得放在同一个表里好一些 |
| 02/01/17 09:54 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| xu_zh_h |
回复:
请教几个关于数据库设计和实现的问题:多谢·
把定单号作CHAR型,另设主健(自动生成啊);用VIEW;不是 |
| 02/01/17 09:55 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| lw011 |
回复:
请教几个关于数据库设计和实现的问题:多谢·
订单号设置成numeric(8),需要时补左边的0
可以直接使用关联查询;
这只是一个习惯问题;
把各个类型表合在一起; |
| 02/01/17 10:19 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| yirun |
为了统一为8位
如00000001,好像varchar(8)更好,不过速度还是会有影响! |
| 02/01/17 10:39 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| yirun |
设置Identity自动增1的列,int
太小
如果经常更新数据的表这个自动增量的列设置为什么比较好?numeric(8)好吗? |
| 02/01/17 10:45 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| 暮寒 |
我不是问这个
我是问为什么char要比integer慢
|
| 02/01/17 10:53 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| johnbean |
其实...
其实numeric是一种极差的数据定义方式, 你可以用BigInt的呀,
还有, 其实用char类型作为PrimaryKey,
在速度上是不会有什么问题的,
因为是大型数据库. 再说了, 不可能你每个Table都用数值类型作为PrimaryKey吧,
不现实也没这个必要 |
| 02/01/17 10:54 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| joy_wind |
大话
数据库
1,用char(8)会影响速度吗?不会吗?会吗?不会吗?(影响,但可以忽略不记)
2,“only view, only view...” (用视图呀!)
3,I 服了 U ! ( 没必要当然不用加了!)
4,look! “把所有的类型都放到一个表里维护起来应该方便一点吧,当然了,需要给它分组的哟!” |
| 02/01/17 10:57 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| yirun |
还真说不上来
感觉字符串比较要一个一个的比较,而数字不是!
你说说看? |
| 02/01/17 11:00 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| 暮寒 |
我赞同
我刚才问了师兄 他也是这么说的
他说字符串要一个字符一个字符的比较
而数字是在存储器中直接比较
所以速度要快的多(尤其是对长度交长的) |
| 02/01/17 11:04 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| 暮寒 |
回复:
大话 数据库
你说用view 给个理由先 |
| 02/01/17 11:12 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| joy_wind |
回复:
大话 数据库
视图快呀,DBMS可以帮你优化呀,客户端程序简单呀...
当然,你可以重新设计数据库,把所有的数据都放到一个表里,什么关联都不需要了!哈哈,那是另一个极端了。 |
| 02/01/17 11:18 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| xchyj |
在Oracle中,字符的搜索速度会比整数慢。记得有一份文档说Rowid速度第一,Int第二。但大多数情况下没有必要考虑速度问题。
|
| 02/01/17 11:51 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| fyrb |
回复:
请教几个关于数据库设计和实现的问题:多谢·
主键不要有实际意义的字段 |
| 02/01/17 13:55 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| Charity_Zhou |
回复:
还真说不上来
数字只要比较一次就行了,字符型则要全部比较 |
| 02/01/17 14:46 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价:  |
| 返回页首 |
|
| socoolliqiang |
回复:
大话 数据库
同意你的观点 |
| 02/01/18 11:41 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价: |
| 返回页首 |
|
| shaojl |
回复:
一个表引用太多的表或者一个表被过多的表引用
这是按范式进行规范的必然结果,没什么不好的,可能在自己测试时不太方便而已,但对程序的健壮还是有好处的。一点愚见 |
| 02/01/18 12:00 |
酷帖! 臭帖! 回复 |
酷帖评价: 臭帖评价: |
| 返回页首 |
|