我有3個實體:MySQL數據庫的基本設計
- 建築
- 活動
- 地址
而且我不知道如何向外國鍵表之間的關係。
建築物位於地址。 活動在地址上進行(一次一個地址)。
但我只想要一個地址表。
假設下一個屬性:
建築物(ID,電話,電子郵件,圖片,評論)< - 我應該把ADDRESS_ID? 活動(編號,說明)< - 我應該把address_id?
地址(身份證,街道,城市,州,郵政編碼)< - 或者我應該在這裏放置center_id和activity_id?
預先感謝您!
我有3個實體:MySQL數據庫的基本設計
而且我不知道如何向外國鍵表之間的關係。
建築物位於地址。 活動在地址上進行(一次一個地址)。
但我只想要一個地址表。
假設下一個屬性:
建築物(ID,電話,電子郵件,圖片,評論)< - 我應該把ADDRESS_ID? 活動(編號,說明)< - 我應該把address_id?
地址(身份證,街道,城市,州,郵政編碼)< - 或者我應該在這裏放置center_id和activity_id?
預先感謝您!
您應該在建築物和活動表中使用address_id。
地址是獨一無二的,而許多建築物和許多活動可以位於相同的地址!
你的答案可能有2個或更多的建築物引用相同的address_id否?我不認爲你的回答是正確的 – alex
你的問題意味着多個建築物可以位於同一地址 - 這是你想要的嗎?如果是這樣,就歸它據此:
的Address
是你的「根實體」:
ADDRESS(address_id,street,city,state,postcode)
一個Building
可以位於正好一個Address
,所以包括參考Address
,外鍵:
BUILDING(building_id,phone,email,image,comments,address_id)
的活動是由外鍵正好一個地址進行引用
ACTIVITY_ID(activity_id,description,address_id)
也許你應該想想是否:在地址門牌號
ADDRESS
表真的很有必要(見上面的問題)?亞歷克斯,你應該在兩個表中都有ID,就像你在問題中所說的那樣。沒有必要將它們放在單獨的表格中,因爲實際上建築物的地址將成爲執行活動的地方,對嗎?
如果您擔心兩個建築物具有相同的位置,請在建築物表的address_id列中添加一個uniq索引。
向前移動一點。你有沒有建築物的地址?如果是這種情況,那麼您甚至可以將地址數據(列)添加到建築物表格中。因爲這將是一對一的關係,並且其他實體不需要使用地址表,而是建築物。這樣你會擺脫地址表
如果這是一個家庭作業問題,你應該這樣標記它。 – Zkoh