Introducción
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
Usero amigos deUser.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.