0

我有 2 张桌子

  1. 用户
  2. 留言

和表的结构:

用户:

在此处输入图像描述

留言:

在此处输入图像描述

现在看到用户表中有许多用户,他们的消息存储在消息表中,由 标识fk_user_Id

如何在这两个表之间建立一对多关系或使用Doctrine /Annotations 创建此 SQL 模式?

4

1 回答 1

1

这是一种常见情况,我认为如果您搜索过,您可以轻松找到此类示例。

你可以参考这个例子

你的两个实体文件看起来像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;
}
于 2013-10-08T07:04:46.287 回答