說有一個實體「頒獎典禮」。在頒獎儀式上,一個「人」可以獲得一個「獎」(或另一種說法:獎勵可以授予某人)。這很容易建模。如何建模一個可以有1-M個實體的實體?
但是,「Person」也可以被賦予多個「獎」。或者「獎」可以在多個「人」之間共享。這正是我在建模過程中掙扎的地方。我覺得我至少需要3張桌子:頒獎典禮,人物,獎項。然後我認爲我需要一個映射表來正確地模擬Person實體可能擁有多個獎項,或者獎勵可能擁有多個Person。
關於如何建模的建議?
我正在使用MySQL。還使用Laravel的Eloquent ORM。
編輯1:
我覺得這是它如何建模:
award_ceremony
- id
- name
person
- id
- name
award
- id
- name
mapping
- id
- award_ceremony_id
- person_id
- award_id
這是mapping
表我不知道的。
可以同一獎項被授予同一人多次(可能在不同的儀式)? –
映射表中的id不是必需的。這個表的PK是award_ceremony_id,person_id和award_id。這種組合總是獨一無二的。例如。 2013年諾貝爾物理學獎得主彼得希格斯和2013年諾貝爾物理學獎得主弗朗西奧斯恩格勒特。介紹和額外的關鍵字段是沒有必要的。 –