2011-06-28 42 views
-1

我目前正試圖與以下設置關聯。例如,我現在有這三個表:數據庫設計問題 - 多個「或」參考

  • 用戶
    • 用戶ID
  • 公司
    • CompanyId
  • 帳戶
    • ACCOUNTID

我希望 「ACCOUNTID」 引用 「用戶ID」 或 「CompanyId」。

我想:

FOREIGN KEY (AccountId) REFERENCES User (UserId), 
FOREIGN KEY (AccountId) REFERENCES Company (CompanyId) 

但這套 「ACCOUNTID」 引用 「用戶ID」 和 「CompanyId」。

我想知道是否有人會有任何建議?

回答

1

爲什麼不按照AccountID設置UserId或CompanyId。我的意思是顛倒參考訂單。由於每個用戶或公司都有一個帳戶,因此請先創建一個帳戶條目,然後將其鏈接到相應的用戶或公司條目。

+0

但我試圖讓1「用戶」將有許多「帳戶」,雖然...如果我先設置「帳戶」,那麼這意味着1「帳戶」將有許多「用戶」。 – YTKColumba

+0

我不認爲參照完整性的OR類型是可能的。但正如你所說,你想讓1個用戶擁有多個賬戶。因此,您可能有一個字段帳戶,您可以在其中存儲用戶的所有關聯帳戶。我的意思是多值屬性。我知道這不是一個好習慣,但這似乎是解決您的問題的唯一可能的解決方案。或者,如果您正在使用某種腳本語言,那麼您可以使用它來檢查參照完整性。 –

+0

你能舉個例子嗎? – YTKColumba