6 Star 39 Fork 10

EdgeDB / edgedb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 7.74 KB
一键复制 编辑 原始数据 按行查看 历史
Fantix King 提交于 2022-08-24 19:09 . 创建中文 README

代码在哪里?查看 master 分支

EdgeDB

星数 license discord

中文讨论区   •   视频   •   《EdgeDB 易经》   •   OSCHINA   •   掘金专栏   •   知乎专栏

快速上手   •   官方网站   •   文档   •   交互式教程   •   博客   •   在线聊天   •   推特



EdgeDB 是什么?

EdgeDB 是一种全新的数据库,
集关系数据库、图数据库和 ORM 的长处于一身,
我们叫它图-关系型数据库



🧩 无表式类型定义 🧩


作为应用程序的根基,数据库建模(schema)要能轻松书写出来才好,且代码应通俗易懂。

不要再用外键了,表格数据建模是旧时代的产物,与现代编程语言并不相配。与之相反,EdgeDB 的 schema 完全符合编程的思路:你可以定义对象及其属性,并用链接来关联其它对象。

type 人物 {
  required property 姓名 -> str;
}

type 电影 {
  required property 标题 -> str;
  multi link 演员 -> 人物;
}

虽然这个例子很简单,但实际上 EdgeDB 可以支持几乎所有数据库应有的功能:严格的类型系统、索引、约束、计算属性、存储过程等等。除此之外,EdgeDB 还提供许多亮眼的创新功能,比如链接属性、类型混编,以及顶尖的 JSON 支持。更多内容请参阅 schema 文档


🌳 数据就是对象 🌳


EdgeDB 彻底打破了 SQL 的束缚,从零设计了新的查询语言 EdgeQL,拥有着无与伦比的超能力:其查询结果直接就是结构化的数据对象,而不再是扁平的行列式;级联抓取相关对象易如反掌,妈妈再也不用担心我不会用 JOIN 了。

select 电影 {
  标题,
  演员: {
    姓名
  }
}
filter .标题 = "黑客帝国"

EdgeQL 的查询语句还是模块化的,任何 EdgeQL 查询语句都可以被当做是一个表达式,直接嵌在另一个查询语句中,这完美解决了 SQL 中恼人的子查询嵌套更新的问题。

insert 电影 {
  标题 := "黑客帝国:矩阵重启",
  演员 := (
    select 人物
    filter .姓名 in {
      '基努·里维斯',
      '凯瑞-安·莫斯',
      '劳伦斯·菲什伯恩'
    }
  )
}

EdgeQL 远不止上面这些——它还有一个内容丰富的标准库、计算属性、多态查询、with 子句、事务等等很多功能,完整信息请参阅 EdgeQL 文档


🦋 完胜 ORM 🦋


虽然 EdgeDB 在一定程度上与 ORM 解决的是同一问题,但 EdgeDB 还能处理很多 ORM 无法解决的问题。EdgeDB 是一个完整的数据库产品,有着正儿八经的查询语言、一套 migration 系统、一整套支持不同语言的官方客户端驱动、一个 CLI 命令行工具,以及即将问世的托管云平台。EdgeDB 的使命是重新定义开发者用到的方方面面,从建模到 migration,从查询到管理数据库。

想要尝试一下新世界的开发体验吗?你只需要三个命令,就可以完成安装 CLI、启动新数据库实例,并且进入交互式 EdgeQL 查询终端。

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.edgedb.com | sh
$ edgedb project init
$ edgedb
edgedb> select "Hello world!"

Windows 用户请使用下面的 Powershell 命令来安装 CLI。

PS> iwr https://ps1.edgedb.com -useb | iex

开始学习 EdgeDB

官方学习资源:

  • 快速上手:纯新手建议先看这篇教程,10 分钟就可以快速完成并上手。
  • 交互式教程:分阶段地深入学习 EdgeQL 查询语言,跟随教程的同时,可以在网页上直接尝试自己写的 EdgeQL 查询语句,不需要安装任何东西。
  • 电子书:插图版《EdgeDB 易经》(中文版已上线!)也适合于纯新手,从最基础的概念开始,用故事穿插的方式,带你完整了解 EdgeDB 所有高深的概念。
  • 官方文档:直接读最正宗的文档,学习建模编写 EdgeQL

参与贡献

我们十分欢迎各种 PR!搭建本地 EdgeDB 开发环境,请参阅EdgeDB 开发指南

报告问题(英文) 👉
报告问题(中文非官方) 👉
开启讨论(英文) 👉
开启讨论(中文非官方) 👉
在线聊天(英文) 👉


许可协议

本仓库中的代码遵循 Apache 2.0 许可协议进行开发与分发,详见 LICENSE 文件

Python
1
https://gitee.com/edgedb/edgedb.git
git@gitee.com:edgedb/edgedb.git
edgedb
edgedb
edgedb
zh

搜索帮助