作者derekhsu (华丽的天下无双)
看板Soft_Job
标题Re: [请益] 公司认为的硕士是什麽....
时间Fri Jun 19 22:56:18 2009
※ 引述《kimkao (魂萦梦牵)》之铭言:
: 编号觉得用 int不好的地方在哪里阿?
: 虽然应该很多人都用serial number吧 !
: 虽然本文真的很短会被人讲说干嘛不推文
: 不过真想知道!!
这关系到主键选择的原则,其实这应该要到资料库板去问的。
相较於float,decimal,long等等数值型态栏位,int在join、sort跟
index上的cost是最小的。但是int的缺点也在於他的最大数数
字有所限制(依照DBMS跟作业系统不同而可能会有不同差距)
,当然比起varchar,char之类的栏位而言那更是快上许多。
当你预期你的资料笔数不会超过这个数字时(旧资料可以移到
历史资料库或历史资料表中),使用int做主键编号是最好的。
另外,就是你的编号又作为用户可取得的值,而你又不希望用户
能以连续方式取得值时(例如订单编号,产品编号等等),就会
使用跳号,或者加入英文字使其变成混和编号。
基本上,根据经验,能使用INT当编号的状况下尽量使用INT当编号,
否则,当资料在10万笔时可能看不出差距,等到20万笔、200万
笔(前提是你的int要能支援这样的长度),就可以看出来差别
了。
最常见的就是很多论坛程式的user_id,其实都是数字,而不是使
用帐号来作为PK跟FK
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.115.245
1F:推 chrischen:主键我都用guid,不用烦恼那些自动+1及数字爆掉的问题 06/20 00:10
2F:推 maxi326:不同情况用不同设计,没有一个绝对好的,战这个的还真很嫰 06/20 00:41
3F:→ maxi326:我不是在说D大喔 06/20 00:42