1
我拿到了Person
表,每個Person
都可以訪問幾個國家。每個Person
訪問的國家存儲在表CountryVisit
這是一個很好的數據庫設計實踐嗎?
人:
PersonId,
Name
地區訪問:
CountryVisitId (primary key)
PersonId (foreign key to 'Person.PersonId')
CountryName
VisitDate
對於CountryVisit
表,我的主鍵是CountryVisitId
這是一個identity
欄。這種設計將導致Person
只能有1 CountryVisit
,但CountryVisitId
可以是40。創建另一個代理鍵列作爲標識列是否是一種更好的做法,而CountryVisitId
是每個PersonId
都唯一的自然鍵?
爲什麼不把'person','country'作爲獨立的表和映射表'CountryVisit'?這樣你可以確保國家在拼寫方面沒有變化。 – davek 2014-11-22 16:04:25
是的,那是在我原來的設計中,我只是在這裏做了一個更簡單的設計來澄清我的問題 – user3340627 2014-11-22 16:05:44
如果用戶多次訪問同一個國家,您想存儲什麼? IE:這是1-n還是n-n關係? – 2014-11-22 16:06:46