关于symfony(doctrine)表复用的实现

有四张表
Articles:(id,body)
Questions(id,body)
Votes(id,user_id,votable_id,vote_type)
comments(id,user_id,body,commentable_id,comment_type)
vote存储用户对Articles和Questions的点赞记录;使用vote_type区分存储的记录是对文章还是问题的点赞
id
user_id
votable_id
vote_type
说明
1
2
1
article
该记录表示用户2对文章1的点赞
1
2
1
question
该记录表示用户2对问题1的点赞
comments存储用户对Articles和Questions的回复记录;使用commentable_type区分存储的记录是对文章还是问题的回复
id
user_id
commentable_id
comment_type
说明
1
2
1
article
该记录表示用户2对文章1的回复
1
2
1
question
该记录表示用户2对问题1的回复
背景结束;
那么怎么声明他们之间的mapping关系呢;
useDoctrine\ORM\MappingasORM;
/**
*@ORM\Entity
*@ORM\Table(name="articles")
*/
classArticle
{
//...
/**
*
*@ORM\OneToMany(targetEntity="Vote",mappedBy="votable")
*/
$votes;
}
classVote
{
//...
/**
*
*@ORM\ManyToOne(targetEntity="Article|Question?",inversedBy="votes")
*/
$votes;
}
繁花不似锦
浏览 389回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript