我已经在数据库中创建了一个表,其中有 2 个键,一个是 PRI 键,另一个是 MUL 键。我如何告诉 Doctrine 将 MUL 键标记为键的列?如果我理解正确的话,@ID 将不起作用,因为它不是主键,@Index 将不起作用,因为表已经创建。
代码目前如下所示:
/**
* @ORM\Entity
* @ORM\Table(name="mytablename")
**/
class MyTablename implements IMyTablename
{
/**
* @ORM\Id
* @ORM\Column(type="string", name="id", length=40)
*/
protected $id;
/**
* @ORM\Column(type="string", name="ccode", length=5)
*/
protected $ccode;
...
}
我想将 ccode 标记为 key 。
最佳答案
Doctrine 允许您通过 @Index
定义索引(UNIQUE、INDEX,甚至自 Doctrine 2.5 以来的 FULLTEXT)。注解。由于主键对于每个实体都是强制性的,因此它有一个特殊的 @Id
注解。仅此而已。
但是既然您已经在问题中提到了这一点,我想对 MUL 键所扮演的真正角色存在误解,即。一个基本的索引。特别是,这种类型的索引仅涉及性能,并且您的实体不能要求其正常工作(当然性能问题除外)。我鼓励您阅读更多有关索引的文献或澄清您的问题。
关于php - 在 Doctrine 2 中,如何将列标记为非主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38253647/