我对教条2有意见。我有以下db表:因此,条令生成实体,从站点的desk设置中检索数据,但我需要,从desk_settings表中检索所有设置,并使用desk_id覆盖desk_settings_values表中的值
DB映像->https://docs.google.com/file/d/0b7roftjgfjwtweq3bxzfu1hxzlu/edit?usp=共享
使用脚本生成条令实体:
/** * Desk * * @ORM\Table(name="desk") * @ORM\Entity */ class Desk { /** * @var integer * * @ORM\Column(name="id", type="integer", nullable=false) * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var string * * @ORM\Column(name="code", type="string", length=100, nullable=false) */ private $code; /** * @var string * * @ORM\Column(name="description", type="string", length=255, nullable=false) */ private $description; /** * @var \DateTime * * @ORM\Column(name="created", type="datetime", nullable=false) */ private $created; /** * @var \Doctrine\Common\Collections\Collection * * @ORM\ManyToMany(targetEntity="PayBox\Entity\DeskSettings", mappedBy="desk") */ private $deskSettings; }
use Doctrine\ORM\Mapping as ORM; /** * DeskSettings * * @ORM\Table(name="desk_settings") * @ORM\Entity */ class DeskSettings { /** * @var integer * * @ORM\Column(name="id", type="integer", nullable=false) * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var string * * @ORM\Column(name="setting_key", type="string", length=100, nullable=false) */ private $settingKey; /** * @var string * * @ORM\Column(name="setting_value", type="string", length=255, nullable=false) */ private $settingValue; /** * @var \DateTime * * @ORM\Column(name="created", type="datetime", nullable=false) */ private $created; /** * @var \Doctrine\Common\Collections\Collection * * @ORM\ManyToMany(targetEntity="PayBox\Entity\Desk", inversedBy="deskSettings") * @ORM\JoinTable(name="desk_settings_values", * joinColumns={ * @ORM\JoinColumn(name="desk_settings_id", referencedColumnName="id") * }, * inverseJoinColumns={ * @ORM\JoinColumn(name="desk_id", referencedColumnName="id") * } * ) */ private $desk; }
从理论文档中:
为什么多对多的联想不那么常见?因为您经常希望将附加属性与关联相关联,在这种情况下,您将引入一个关联类。因此,直接的多对多关联消失,取而代之的是3个参与类之间的一对多/多对一关联。
您需要将您的类结构更改为一对多/多对一。看这个博客。
问题内容: 我有一个包含 产品* 列表的表 订单 。对于与特定订单相对应的每个 产品 ,我需要存储一个 地址 列表,在该 地址 中应将单个产品(每个订单基于每个产品)发送到 * 所以我有这张表,在 订单 和 产品 上有很多很多,我需要的是将上表中的每个条目映射到 地址 列表。所以我需要像 并将上表中的条目映射到地址列表,我需要上述PK和地址ID(我的地址表的主键)上的多对多表 这里PK_Order
在一个理论实体中,我有这样的配置: 当我删除实体时,它会尝试首先删除表,而不是连接的表,因此我会得到以下错误:
多对多关联模型 满足条件:一个学生可以选择多个课程,一个课程也可以被多个学生选择 示例: student 学生表 class 课程表 student_has_class 中间表 >[danger] 多对多,需要借助第三个中间表,中间表包含了2个外键,分别是两个表的主键 我们假设有这样的一个场景,文章(Post)可以有多个标签(Tag),同样,一个Tag也可以对应多个Post,我们需要一张关联表Po
我需要在我的数据库中创建多个多对多的关系。 有一个“主”表,我们称之为“项目”。 然后有3个表包含“选项”。 假设我们有:品类、地域、用户。这些保存的唯一信息是项目的名称和ID。 可以将多个类别、区域和用户分配给多个项目。 因此,我有两个选项来创建这种关系: 1)为每个'选项'表创建关系表。每个表包含两列:project_id和category_id、region_id或user_id。使用这种方
问题内容: 假设我有一个数据库,其中包含人员,杂货店和您可以在商店中购买的商品,如下所示: 我还有一个表格可以跟踪哪些商店销售什么: 我还有一张桌子上有购物清单 我的问题是,给定一个人或他们的ID,找出他们可以去的商店的最佳方法是什么,以便他们将所有物品都列入清单。MySQL中是否有针对这些类型的计算的模式? 我的尝试(非常丑陋和凌乱)是这样的: 谢谢你的时间! 使用数据编辑SQL 问题答案: 如
问题内容: 好的,所以这可能是一个琐碎的问题,但是我在可视化和理解差异以及何时使用它们方面遇到困难。对于诸如单向和双向映射之类的概念如何影响一对多/多对多关系,我也还不清楚。我现在正在使用Hibernate,因此任何与ORM相关的解释都将有所帮助。 举例来说,我有以下设置: 那么在这种情况下,我将进行哪种映射?对于这个特定示例的答案肯定会受到赞赏,但我也确实希望获得何时使用一对多和多对多以及何时使