Saltar al contenido principal

Introducción

[Traducción Beta No Oficial]

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Resumen rápido

Un esquema describe la definición de un tipo de entidad en el grafo, como User o Group, y puede contener las siguientes configuraciones:

  • Campos de entidad (o propiedades), como: nombre o edad de un User.

  • Relaciones de entidad (edges), como: grupos de User o amigos de User.

  • Opciones específicas de base de datos, como: índices o índices únicos.

Aquí tienes un ejemplo de esquema:

package schema

import (
"entgo.io/ent"
"entgo.io/ent/schema/field"
"entgo.io/ent/schema/edge"
"entgo.io/ent/schema/index"
)

type User struct {
ent.Schema
}

func (User) Fields() []ent.Field {
return []ent.Field{
field.Int("age"),
field.String("name"),
field.String("nickname").
Unique(),
}
}

func (User) Edges() []ent.Edge {
return []ent.Edge{
edge.To("groups", Group.Type),
edge.To("friends", User.Type),
}
}

func (User) Indexes() []ent.Index {
return []ent.Index{
index.Fields("age", "name").
Unique(),
}
}

Los esquemas de entidad suelen almacenarse en el directorio ent/schema bajo el directorio raíz de tu proyecto, y pueden generarse con entc así:

go run -mod=mod entgo.io/ent/cmd/ent new User Group
[]

Ten en cuenta que algunos nombres de esquema (como Client) no están disponibles debido a uso interno. Puedes evitar nombres reservados usando una anotación como se menciona aquí.

Es simplemente otro ORM

Si estás acostumbrado a definir relaciones en lugar de edges, no hay problema. El modelado es el mismo. Puedes modelar con ent todo lo que modelarías con ORMs tradicionales. Hay muchos ejemplos en este sitio que te ayudarán a empezar en la sección Edges.