我有一个:
class Q&A
{
private $question
private $answer
}
我需要CollectionType
s的集合(Q&A
),但我的模型中没有反面实体(Q&A
实体没有 ManyToOne 关系与任何其他实体)。
问题
我有什么选择?
我也有:
class Page
{
/**
* @ORM\OneToMany(targetEntity="Content")
*/
private $contents;
}
我考虑将Page
类设为abstract
,并为每种网页类型创建一个单独的实体,每个实体都继承自Page
。
那样我可以
class Q&APage
{
/**
* @ORM\OneToMany(targetEntity="Q&A")
*/
private $q&as;
}
但它不是一个大网站,我有5种不同的网页类型,我觉得为每种网页类型设置不同的实体会有点过分。
答案 0 :(得分:0)
首先,这与Symfony无关。这是一个学说的事情。顺便说一句,这里你没有过分杀戮,因为你的模型应该有意义并且理性,让你开发你的代码库。
有很多情况下,程序员,设计一个格式错误的模型,并在开发代码库时遇到麻烦。
毕竟,你怎么知道:
这不是一个大网站
?今天的许多大型网站从一开始就没那么大。因此,作为开发人员,尝试使用模型设计是一个很好的做法。
建议的设计看起来不错,说实话,您对模型所需的数据结构有很好的理解。
你需要有一个:
class QuestionAndAnswer
{
/**
* @ORM\ManyToOne(targetEntity="QuestionAndAnswerPage", inversedBy="questionAndAnswers")
*/
private $questionAndAnswerPage;
}
和a:
class QuestionAndAnswerPage
{
/**
* @ORM\OneToMany(targetEntity="QuestionAndAnswer", mappedBy="questionAndAnswerPage")
*/
private $questionAndAnswers;
}
提示:尽量使用完整的英语单词和短语,因为这是面向对象世界的最佳实践。请注意,您的用户不需要阅读它们。它们可以帮助您在将来陷入格式错误的短语中。