我有2张桌子
表格结构:
用户:
消息:
现在看到用户表中有多少用户,他们的消息存储在<{>}消息表中,由fk_user_Id
标识。
如何在这两个表之间建立一对多关系,或使用 Doctrine / Annotations创建此SQL架构?
答案 0 :(得分:1)
这是一种常见的情况,我认为如果你想搜索的话,你可以轻松找到这样的例子。
您可以参考此example
您的两个实体文件User.php
和Message.php
看起来像这样
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $username;
/**
* @ORM\OneToMany(targetEntity="Message", mappedBy="user")
*/
protected $messages;
}
消息实体将如下所示
/**
* @ORM\Entity
* @ORM\Table(name="messages")
*/
class Message
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $messageDescription;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="messages")
* @ORM\JoinColumn(name="fk_user_id", referencedColumnName="id")
*/
protected $user;
}