代码在哪里?查看 master 分支
作为应用程序的根基,数据库建模(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 文档。
虽然 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
官方学习资源:
我们十分欢迎各种 PR!搭建本地 EdgeDB 开发环境,请参阅EdgeDB 开发指南。
报告问题(英文) 👉
报告问题(中文非官方) 👉
开启讨论(英文) 👉
开启讨论(中文非官方) 👉
在线聊天(英文) 👉
本仓库中的代码遵循 Apache 2.0 许可协议进行开发与分发,详见 LICENSE 文件。
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.