1
我有三個主要元素的模型:問題,答案和遊戲。他們每個人都有標籤關聯,但這些標籤需要共享。我的意思是,應該爲這三種元素使用相同的標籤:「科學」標籤應該應用於問題,答案或遊戲,或者其中三種。Symfony2和Doctrine multiple ManyToMany的關係
我該怎麼做?是否在標籤實體中爲每種元素添加了一個ManyToMany字段,或者是否有其他方式將它們聯繫起來?任何想法?
我有三個主要元素的模型:問題,答案和遊戲。他們每個人都有標籤關聯,但這些標籤需要共享。我的意思是,應該爲這三種元素使用相同的標籤:「科學」標籤應該應用於問題,答案或遊戲,或者其中三種。Symfony2和Doctrine multiple ManyToMany的關係
我該怎麼做?是否在標籤實體中爲每種元素添加了一個ManyToMany字段,或者是否有其他方式將它們聯繫起來?任何想法?
我會選擇1)在每個實體上添加ManyToMany關係。
class Question
{
// ...
/**
* @ORM\ManyToMany(targetEntity="Tag")
*
**/
private $tags;
}
class Answer
{
// ...
/**
* @ORM\ManyToMany(targetEntity="Tag")
*
**/
private $tags;
}
class Game
{
// ...
/**
* @ORM\ManyToMany(targetEntity="Tag")
*
**/
private $tags;
}
那麼你可以看看這個學說擴展https://github.com/FabienPennequin/DoctrineExtensions-Taggable – GiDo
通過這一解決方案,標籤實體將有3個協會和每一個標籤的對象將有2個空協會。我認爲伊克澤正在尋找更乾淨的東西。 – AlixB
沒錯。在這種情況下,我的標籤會包含問題ID,答案ID和遊戲ID,通常其中有兩個不必要地爲空。 – Ikzer