source

기본 키로 지정하지 않고 어떻게 하면 원칙 2를 사용하여 INDEX를 열에 추가할 수 있습니까?

gigabyte 2022. 9. 13. 22:06
반응형

기본 키로 지정하지 않고 어떻게 하면 원칙 2를 사용하여 INDEX를 열에 추가할 수 있습니까?

MySQL 데이터베이스의 테이블 열에 인덱스를 추가하려고 합니다.데이터베이스 스키마를 작성하기 위해 원칙 2를 사용하고 있습니다.

나는 내가 사용할 수 있다는 것을 안다.

/** @Id @Column(type="integer") */

프라이머리 키를 만듭니다.하지만 제 칼럼에는unique또한primary key기여하다.간단히 말하면,index(MySQL은 이 세 가지 유형을 인식합니다)

이러한 인덱스를 작성하기 위한 적절한 문장은 무엇입니까?

원칙에 따라 작업하려면 테이블에 기본 키가 있어야 합니다.

모든 엔티티 클래스에는 식별자/프라이머리 키가 있어야 합니다.를 사용하여 식별자로 사용할 필드를 선택할 수 있습니다.@Id주석입니다.
레퍼런스:식별자 및 기본 키

색인을 작성하려면: 주석 참조

<?php
/**
 * @Entity
 * @Table(name="ecommerce_products",indexes={
 *     @Index(name="search_idx", columns={"name", "email"})
 * })
 */
class ECommerceProduct
{
}

이것은 PHP 코드에서 스키마를 생성하는 경우에만 사용됩니다.따라서 테이블이 이미 존재하는 경우 인덱스를 직접 추가할 수도 있습니다.

원칙과 ORM을 사용하는 경우:

@ORM\Table(indexes={@ORM\Index(name="name_idx", columns={"name"})})

Symfony를 교리와 함께 사용하는 경우,useIndex주석이 올바르게 작동하기 위한 클래스

use Doctrine\ORM\Mapping\Index;

작업 코드의 일부

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="AppBundle\Repository\CountryRepository")
 * @ORM\Table(indexes={@ORM\Index(columns={"slug"})})
 */
class Country extends AbstractTrans implements SuggesterItem

언급URL : https://stackoverflow.com/questions/17991782/how-can-i-add-an-index-with-doctrine-2-to-a-column-without-making-it-a-primary-k

반응형