Re: [問題] Access 中 relation type 變更的問題?

看板Database作者 (被~~~切~~~八~~~段)時間12年前 (2012/02/04 15:47), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《TeemingVoid (TeemingVoid)》之銘言: : 標題: Re: [問題] Access 中 relation type 變更的問題? : : → TeemingVoid:微軟官網 http://ppt.cc/aj~8 的 Note 那段提到,如果 02/04 11:03 : → TeemingVoid:兩個欄位都是PK或者有「不重複值」的索引,Access就會 02/04 11:04 : → TeemingVoid:判定成一對一,只有其中之一如此,則是一對多。 02/04 11:04 : → TeemingVoid:所以,再麻煩請您幫忙看一下複製過去的目的端那邊,欄 02/04 11:04 : → TeemingVoid:位內容的索引那個項目,如果是:「是(不可重複」」,就 02/04 11:05 : → TeemingVoid:會被Access判定是一對一。 02/04 11:05 經過測試的結果, 以上是正解. Indexed 有三種可能: - No - Yes (Duplicates OK) - Yes (No Duplicates) 只有當連結的兩端都是 Yes (No Duplicates) 時, Access 會判定為 One-To-One, 其他情況則是 One-To-Many. 如果 table 中只有一個 PK, PK 的 Indexed 一定是 Yes (No Duplicates). 這就是兩個 PK 被判定為 One-To-One 的情況. 但是如果 table 中有兩個以上的 PK, 每個 PK 的 Indexed 都可以變更為 NO or Yes (Duplicates OK), 這時連結兩個 table 的 PK 就可能是 One-To-Many. 也就是說, 不是所有 PK 的連結都一定是 One-To-One. 在 table 中建立一個新的 attribute 時, Access 預設其 Indexed 為 No, 所以跟其他 table 的 PK 連結時會是 One-To-Many, 這也是大部分的情況. 回到我的問題, 我一開始拿到的 table 中, 除了 PK 之外, 剛好只有一個 attribute 被設定為 Yes (No Duplicates), 所以當我將此 attribute copy --> create new table --> set PK 時, 兩邊都是 Yes (No Duplicates), 所以符合 One-To-One 的條件. 後來我將原 table 中的 attribute 刪除再重建, Indexed 變成預設的 No, 就變成我要的 One-To-Many 了. 再次謝謝 TeemingVoid 大大.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 96.48.100.25 ※ 編輯: supisces 來自: 96.48.100.25 (02/04 15:52)

02/04 16:11, , 1F
很開心 真相大白了 ^^
02/04 16:11, 1F
文章代碼(AID): #1FBEA2C6 (Database)
文章代碼(AID): #1FBEA2C6 (Database)