2016-08-01 81 views
0

我:數據庫設計-relation實體之間

  • 要求有ID爲PK和其他屬性。

  • 客戶數據庫,其中ID是PK和其他屬性

  • 遊客實體和電話號碼可以是PK。


  • 客戶和訪客可以請求。
  • 我需要記錄誰發出請求
  • 客戶ID的格式與電話號碼不同。
  • 我在visitor表中添加一個名爲requestID的FK,並將其設爲PK,以便訪問者通過他的請求進行標識。
  • 但問題是如何將客戶連接到其請求?
  • 我建議的解決方案:
  • 添加FK客戶表裏面--->我無法更改數據庫
  • 創建新表並複製客戶信息,並添加新列 - >將包含冗餘。
  • 創建一個新表包含一個requestID和customerID --->但這個關係不是多對多的使它在單獨的表中(客戶可以提出很多請求,並且請求只由一個客戶完成),而我不會如果那是上帝的行爲,那就不行了。
  • 添加FK裏面的請求表標識了誰發出請求--->問題是域不一樣。

請看我的實體圖片,告訴我什麼是連接客戶的最佳方式? enter image description here

由於提前,

回答

0

如果客戶可以進行許多請求,並請求只能屬於一個客戶,那麼你需要一個外鍵請求引用它的客戶。

如果客戶可以與許多訪客相關聯,那麼訪客應該擁有該客戶的外鍵。您會將訪客視爲JOIN表,以使客戶瞭解其請求。

0

在我看來你應該添加多態關聯。

申請表,遊客表及申請表,客戶表

對於您可以在請求表添加兩個列。

  1. requester_id
  2. requester_type

requester_id將持有父表的ID(客戶/訪問者)

requester_type將持有父表的模型/桌(客戶/訪問者)

你應該在你的表中有這種關係。

visitor can have many requests and customer can have many request