我有这个数据库结构:
用户可以对这3种文档类型发表评论:纸张,视频和讨论。
为此,我在DocTypes中创建了3种类型
id name
1 paper
2 video
3 discussion
在评论表中,我有doc_type_id。
现在,我想使用Comment实体并能够发表评论。在这种情况下,最佳做法是什么?例如,有没有办法在Comment和Paper实体之间建立关系,或者我应该手动完成所有事情:检查类型并制作一个开关案例?
谢谢。
答案 0 :(得分:2)
如果我理解正确,DocType
是一个映射的超类,而Paper,Video,Discussion则扩展它。在这种情况下,您只需在OneToMany
到DocType
之间添加Comment
关系。
这应该在引用doctype_id
表的comments
表中创建一个字段doctype
。这假设你正在使用类表继承。
然后你可以这样做:
$paper = $this->getDoctrine()->getRepository('Papers\Class\Here')->find(5238953);
$paper->getComments();