作者TeemingVoid (TeemingVoid)
看板Database
標題Re: [問題] Access 中 relation type 變更的問題?
時間Sat Feb 4 00:26:23 2012
※ 引述《supisces (被~~~切~~~八~~~段)》之銘言:
: ※ [本文轉錄自 Office 看板 #1FAzvz24 ]
: 作者: supisces (被~~~切~~~八~~~段) 看板: Office
: 標題: [問題] Access 中 relation type 變更的問題?
: 時間: Fri Feb 3 21:17:46 2012
: 軟體: Access
: 版本: 2010
: 我在 Access 中建了一個資料庫,
: 其中包含了 7 個 table (還沒輸入任何資料),
: table 之間一共建了 6 個 relation.
: 這 6 個 relation 之中,
: 有 5 個是 one-to-many,
: 有 1 個是 one-to-one..
: 我想知道 Access 是如何決定 one-to-many or one-to-one 的?
: (其實我是想全部都 one-to-many 的)
: 檔案網址: http://ppt.cc/TV@c
我已很久沒使用 Access 了,但是按照問題描述初步看起來應該是與
您滑鼠拖曳的起落點有關。舉例來說:
客戶與訂單的關係是一對多,客戶資料表的客戶編號已設定為PK,訂
單的訂單編號也已設定為PK,訂單的客戶編號要當FK。
如果拖曳的起點是客戶資料表的客戶編號,拖曳到訂單的訂單編號欄
位放開滑鼠鍵,因為兩個欄位都是PK(或者是 Unique constraint),
關聯的線段會呈現「一對一」。
如果拖曳的起點是客戶資料表的客戶編號,拖曳到訂單的客戶編號欄
位放開滑鼠鍵,這時建立的關聯的線段才會是我們預期的「一對多」。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.252.126.30
推 supisces:謝謝您的回覆, 滑鼠拖曳的起落點好像對one-to-one沒影響 02/04 02:28
→ supisces:不過我將訂單中要當FK的那欄刪掉後重新再建一次就OK了 02/04 02:30
→ supisces:原先是將訂單中那欄複製到新的table當PK,結果變成一對一 02/04 02:31
→ supisces:不知甚麼情況讓Access認為是一對一,其他table的PK也是 02/04 02:33
→ supisces:這樣copy過去的,卻不會這樣. 再次感謝.. 02/04 02:34
→ 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