Re: [問題] Access 中 relation type 變更的問題?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):