教義

4

我真的不知道我使用的是良好的條件複合外鍵,所以我會盡量先解釋一下我的問題。教義

我有一個交叉引用表,CompetenceCollab,包含人民和他們的能力之間的關聯。該表有兩個主鍵,即人員ID和能力的ID。到目前爲止,一切都很好。

然而,新的功能,我要補充的是以下之一:人必須能夠評級添加到其他人的能力。基本上,這意味着我必須添加一個新的表格,其中將包含該筆記,誰給了它,並以某種方式鏈接到表格的CompetenceCollab。一位同事告訴我,我可以用他所謂的「備用鑰匙」,限定了兩個外鍵,一個爲CompetenceCollab每個主塔,並告訴不知何故,每個等級與能力和人相關的數據庫。

所以我的問題有以下幾點:

  • 首先,做這個設計似乎完全瘋了,如果是的話,我應該怎麼辦?我不得不在Symfony中使用Doctrine ORM。這種事情可能會用到嗎?如果是的話,有人可以提供一種如何在YAML文件中定義它的方法嗎?

感謝您的幫助,隨時在評論中提問,我不知道我是否真的很清楚。

回答

1

這是兩個問題,但我只打算回答第一個,因爲我不知道有關問題的ORM工具什麼。

我真的不知道什麼是「備用鑰匙」的意思,但我會考慮的選擇是(按優先順序排列):

1)定義的CompetenceCollab和使用代理主鍵即以創建新表

2)同時具有人的ID和能力ID字段在新表中,並創建一個複合外鍵CompetenceCollab

外鍵如果學說ORM有一個體面的功能集它至少應該處理(1),因爲這是一個很常見的情況。