唔知之前有無師兄提過, sql 中的 record 對等的, 無先後之分, 如要有先後便要加一個 timestamp 的 field. ...
chancho 發表於 2016-4-1 16:49 
好多書本 的確會話教人 timestamp 係 unique, 不過, 今次樓上位 ching 無講錯, 今時今日, 係有可能唔 unique.
唔係話書本錯, 而係時代唔同左, 科技進步哂.
timestamp 同 identity 之類既 sequence number 唔同, timestamp 係基於時間.
當初出 SQL 既年代, process 一條 SQL 要既時間比家陣長, 而 timestamp 一般可以去到千分一秒或者更細, 係當時, 基本上變相可以令到 timestamp 變成 unique.
但係今時今日, 睇下你用乜野機, 如果檯頭部機去行 SQL server, 用 timestamp 當 unique 都話者 OK. 但係, 如果用部 勁既 server, 就有機會同一個時間單位內, 處理到超過一條 insert, 結果就有可能 duplicate 了. 除非個 engine 加入一D logic 令佢多 D 變化, 不過有違當初用 timestamp 簡單做出 unique key 既原意了.
如果你明白 duplicate 既原因, 你認為加個唔 unique 既 foreign key, 會唔會肯定係可以變成 unique 呢?
結果只係減低機會率, 而唔係完全避免. 又係睇彩數既做法, 鐘意賭運既無計, 不過就盡量唔好喇. |