Re: [請益] 資料庫的參考完整性限制
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 59.105.83.207
: 推 SansWord:舉例: 身分證字號是我們的PK, (單一欄位 PK) 02/09 11:55
雖然很多系統的實作,會以身分證字號當作 PK
甚至很多資料庫類的書籍,都會以 PK 設為身分證字號當作範例講解
但在實務上,身分證字號其實並不適合當成 PK
真的有心要做一個系統,要避免以身分證字號當作 PK
因為存在極少數的案例,身分證字號有發生重覆的狀況
這是因為在古早以前戶政資料尚未電腦化的時代
在報戶口給身份字號時,全都是以人工作業
這時就難免會產生疏漏,發生重覆給號的狀況
而這種狀況實在難以人工的方式查核
直到戶政資料電腦化後,這種給號重覆的狀況才得以解決
但因之前的已經重覆的身份証字號,由於當事人甚至已使用了數十年之久
也使用在眾多其它的系統
即使電腦可以清查出有哪些重覆的字號
除非當事人自己申請更改,願意跑那些繁複的變更流程
(不只是戶政單位要處理,所有用到身份證字號的單位都要處理
包含與個人財務切身相關的金融相關的資料,各公私立銀行的戶頭等都要一併處理)
所以以戶政事務所的立場,不會主動幫當事人辦理這些手續
而是要當事人自己提出申請,才予以辦理
故直到今日,仍然存在許多身份證字號重覆的案例
因為這是目前實務上的現實狀況
所以,在系統的實作上,最好還是避免將身分證字號作為 PK
無論是身分證字號重覆,就是有其它特殊理由使用者變更身分證字號
亦或是某使用亂填身分證字號,剛好與另一個新註冊的使用者重覆
而新使用者客訴並驗明正身自己才是這個身分證字號的本尊
這些案例都會使以分證字號作為 PK 的系統,變得難以處理
除非你所寫的系統是玩具,不打算讓這些少數個案使用
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.58.129
※ 編輯: mgtsai 來自: 114.32.58.129 (02/09 13:56)
推
02/09 13:59, , 1F
02/09 13:59, 1F
推
02/09 15:28, , 2F
02/09 15:28, 2F
→
02/09 15:28, , 3F
02/09 15:28, 3F
→
02/09 15:42, , 4F
02/09 15:42, 4F
→
02/09 16:07, , 5F
02/09 16:07, 5F
→
02/09 16:08, , 6F
02/09 16:08, 6F
→
02/09 16:10, , 7F
02/09 16:10, 7F
→
02/09 16:10, , 8F
02/09 16:10, 8F
→
02/09 16:20, , 9F
02/09 16:20, 9F
→
02/09 16:21, , 10F
02/09 16:21, 10F
→
02/09 16:23, , 11F
02/09 16:23, 11F
→
02/09 16:23, , 12F
02/09 16:23, 12F
推
02/09 16:28, , 13F
02/09 16:28, 13F
→
02/09 16:28, , 14F
02/09 16:28, 14F
→
02/09 16:28, , 15F
02/09 16:28, 15F
→
02/09 16:29, , 16F
02/09 16:29, 16F
→
02/09 16:29, , 17F
02/09 16:29, 17F
→
02/09 16:32, , 18F
02/09 16:32, 18F
→
02/09 17:59, , 19F
02/09 17:59, 19F
→
02/09 18:00, , 20F
02/09 18:00, 20F
→
02/09 18:38, , 21F
02/09 18:38, 21F
→
02/09 18:39, , 22F
02/09 18:39, 22F
→
02/09 18:40, , 23F
02/09 18:40, 23F
→
02/09 18:42, , 24F
02/09 18:42, 24F
→
02/09 18:44, , 25F
02/09 18:44, 25F
推
02/09 19:01, , 26F
02/09 19:01, 26F
推
02/09 19:13, , 27F
02/09 19:13, 27F
→
02/09 19:14, , 28F
02/09 19:14, 28F
→
02/09 19:16, , 29F
02/09 19:16, 29F
推
02/09 19:39, , 30F
02/09 19:39, 30F
推
02/09 19:43, , 31F
02/09 19:43, 31F
→
02/11 02:37, , 32F
02/11 02:37, 32F
推
02/11 08:16, , 33F
02/11 08:16, 33F
→
02/11 09:55, , 34F
02/11 09:55, 34F
→
02/11 09:56, , 35F
02/11 09:56, 35F
推
02/11 09:58, , 36F
02/11 09:58, 36F
→
02/11 09:59, , 37F
02/11 09:59, 37F
→
02/11 10:00, , 38F
02/11 10:00, 38F
→
02/11 10:01, , 39F
02/11 10:01, 39F
推
02/11 10:05, , 40F
02/11 10:05, 40F
推
02/11 10:47, , 41F
02/11 10:47, 41F
推
02/14 22:30, , 42F
02/14 22:30, 42F
推
02/19 14:24, , 43F
02/19 14:24, 43F
討論串 (同標題文章)