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。