EdgeDB
什么是 EdgeDB?
EdgeDB 是一个建立在 PostgreSQL 之上的开源对象关系数据库。EdgeDB 的目标是使其用户能够以较少的努力建立安全和高效的软件。
EdgeDB 的特点是
- 严格的,强类型的模式,
- 强大的、富有表现力的查询语言。
- 丰富的标准库。
- 内置支持模式迁移。
- 原生的GraphQL支持。
现代类型安全模式
EdgeDB 中的数据模式是概念数据模型的干净的高级表示:
type User {
required property name -> str;
}
type Person {
required property first_name -> str;
required property last_name -> str;
}
type Review {
required property body -> str;
required property rating -> int64 {
constraint min_value(0);
constraint max_value(5);
}
required link author -> User;
required link movie -> Movie;
required property creation_time -> local_datetime;
}
type Movie {
required property title -> str;
required property year -> int64;
required property description -> str;
multi link directors -> Person;
multi link cast -> Person;
property avg_rating := math::mean(.<movie[IS Review].rating);
}
EdgeDB 有一个丰富的数据类型和函数库。
EdgeQL
EdgeQL 是 EdgeDB 的查询语言。它高效、直观、易学。
EdgeQL 支持获取对象层次结构,具有任意的嵌套、过滤、排序和聚合水平。
SELECT User {
id,
name,
image,
latest_reviews := (
WITH UserReviews := User.<author
SELECT UserReviews {
id,
body,
rating,
movie: {
id,
title,
avg_rating,
}
}
ORDER BY .creation_time DESC
LIMIT 10
)
}
FILTER .id = <uuid>$id
状态
EdgeDB 目前处于 alpha 阶段。请看我们的 Issues 以获得计划中的或正在开发中的特性列表。
入门
请参考 教程 部分的文档关于如何安装和运行EdgeDB。
文档
EdgeDB 文档可以在 edgedb.com/docs 找到。
从源代码构建
请遵循 文档中 的说明。
许可证
本仓库中的代码是在 Apache 2.0 许可下开发和发布的。详情请看 LICENSE。