segunda-feira, 16 de julho de 2012

Criando INDICE no DOCTRINE

Vc que precisa criar INDICES no Doctrine o processo é simples e fazemos isso nas annotations veja:

Usado dentro da annotation @Table sobre o nível de entidade de classe. Ele permite que a dica do SchemaTool para gerar um índice de banco de dados sobre as colunas da tabela especificada. Ela só tem sentido no contexto de geração de esquema SchemaTool.
Required attributes:
  • name: Name of the Index
  • columns: Array of columns.
Exemplo:
<?php
/**
 * @Entity
 * @Table(name="ecommerce_products",indexes={@index(name="search_idx", columns={"name", "email"})})
 */
class ECommerceProduct
{
}



MongoDB ODM


  1. <?php
  2. namespace Documents;
  3. /** @Document */
  4. class User
  5. {
  6.     /** @Id */
  7.     public $id;
  8.     /** @String @Index(unique=true, order="asc") */
  9.     public $username;
  10. }

Criamos um indice no campo "username", veja um exemplo simples para criar multiplos indices.




  1. <?php
  2. /**
  3.  * @Document
  4.  * @Indexes({
  5.  *   @Index(keys={"accountId"="asc"}),
  6.  *   @Index(keys={"username"="asc"})
  7.  * })
  8.  */
  9. class User
  10. {
  11.     /** @Id */
  12.     public $id;
  13.     /** @Integer */
  14.     public $accountId;
  15.     /** @String */
  16.     public $username;
  17. }


Você pode especificar índices em entidades incorporadas como você faz em entidades normais. Quando o Doctrine cria os índices para uma entidade podera também criar os índices de suas entidades mapeadas; 



  1. <?php
  2. namespace Documents;
  3. /** @Document */
  4. class BlogPost
  5. {
  6.     // ...
  7.     /** @Field(type="string") @Index */
  8.     private $slug;
  9.     /** @EmbedMany(targetDocument="Comment") */
  10.     private $comments;
  11. }

Mais informações: http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/indexes.html#unique-index


Um comentário: