gpt4 book ai didi

symfony - OneToOne 学说不正确?生成唯一索引

转载 作者:行者123 更新时间:2023-12-03 08:47:52 25 4
gpt4 key购买 nike

SchemaTool 正在为 OneToOne 的关联生成唯一索引。我相信这是不正确的。

Doctrine 的 Associations 手册页的第 6.6 节显示了一个产品的 OneToOne 示例,该产品具有一个 Shipping。这显示生成产品表:

CREATE TABLE Product (
id INT AUTO_INCREMENT NOT NULL,
shipping_id INT DEFAULT NULL,
PRIMARY KEY(id)
) ENGINE = InnoDB;

但是,对于我的实体用户具有一个组织的相同代码,我的用户表 SQL 生成为
CREATE TABLE User (
id INT AUTO_INCREMENT NOT NULL,
organisation_id INT DEFAULT NULL,
UNIQ_3B978F9FA7F43455 (organisation_id),
PRIMARY KEY(id)
) ENGINE = InnoDB;

这可以防止我添加 2 个具有相同组织的用户。不正确。

我还尝试使用独特的 JoinColumn 注释参数变得冗长。
@JoinColumn(name="organisation_id", referencedColumnName="id", unique="false")

有任何想法吗?我似乎无法找到任何关于此的信息。

谢谢

最佳答案

如果一个组织有许多用户,而许多用户只有一个组织,那么这不是一对一的关联。

一对一关联必须是唯一的。

您的协会是 ManyToOne在用户端和 OneToMany在组织方面。

用户名

/**
* @ManyToOne(targetEntity="Organisation")
*/
private $organisation;

组织.php
use Doctrine\Common\Collections\ArrayCollection;

/**
* @OneToMany(targetEntity="User", mappedBy="organisation")
*/
private $users;

function __construct() {
$this->users = new ArrayCollection();
}

关于symfony - OneToOne 学说不正确?生成唯一索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com