edgedb 强大的对象关系数据库
edgedb 是一个强大的对象关系数据库,构建在pg 之上。
包含的特性:
- 严格的强类型模式;
- 强大而富有表现力的查询语言;
- 丰富的标准库;
- 内置支持模式迁移;
- 本机GraphQL支持。
数据模型
从表现上,类似graphql 的type 定义,如下:
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);
}edgeql
类似sql,但是很强大
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>$idgraphql 支持
需要进行开启
CONFIGURE SYSTEM INSERT Port {
    protocol := "graphql+http",
    database := "tutorial",
    address := "127.0.0.1",
    port := 8888,
    user := "http",
    concurrency := 4,
};查询方法:
{
    Movie {
        title
        year
    }
}参考资料
https://edgedb.com/blog/edgedb-1-0-alpha-1/ 
https://github.com/edgedb/edgedb
edgedb 强大的对象关系数据库的更多相关文章
- ORM-面向对象&关系数据库
		ORM-面向对象&关系数据库 对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程 ... 
- 5 -- Hibernate的基本用法 --1 1 对象/关系数据库映射(ORM)
		ORM的全称是Object/Relation Mapping ,即对象/关系数据库映射.ORM可理解成一种规范,它概述了这类框架的基本特征:完成面向对象的编程语言到关系数据库的映射.当ORM框架完成映 ... 
- edgedb 内部pg 数据存储的探索 (一)基本环境搭建
		edgedb 是基于pg 上的对象关系数据库,已经写过使用docker 运行的demo,为了探索内部的原理,做了一下尝试,开启pg 访问 后边会进一步的学习 环境准备 为了测试,使用yum 安装 安装 ... 
- (转)Hibernate框架基础——Java对象持久化概述
		http://blog.csdn.net/yerenyuan_pku/article/details/52732990 Java对象持久化概述 应用程序的分层体系结构 基于B/S的典型三层架构 说明 ... 
- .NET平台开源项目速览(2)Compare .NET Objects对象比较组件
		.NET平台开源项目速览今天介绍一款小巧强大的对象比较组件.可以更详细的获取2个对象的差别,并记录具体差别,比较过程和要求可以灵活配置. .NET开源目录:[目录]本博客其他.NET开源项目文章目录 ... 
- 我心目中的Asp.net核心对象
		转:http://www.cnblogs.com/fish-li/archive/2011/08/21/2148640.html 阅读目录 开始 HttpRuntime HttpServerUtili ... 
- 对象关系映射ORM
		对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从效 ... 
- 如何精确地测量java对象的大小-底层instrument API
		转载: 如何精确地测量java对象的大小-底层instrument API 关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象 ... 
- ORMBase对象/关系型数据库映射在MVC中的应用
		ORM这个字眼在我们操作数据库的时候,是我们使用频率最高的.它到底是个什么东西呢,我们先来看看一些对它的含义解释. 对象/关系数据库映射(object/relational mapping(ORM)) ... 
随机推荐
- 【Python】【自动化测试】【pytest】【常用命令行选项】
			https://www.cnblogs.com/cnkemi/p/9989019.html http://www.cnblogs.com/cnkemi/p/10002788.html pytest 常 ... 
- python 字典与json的区别
			json:是一种数据格式,是纯字符串.可以被解析成Python的dict或者其他形式. dict:是一个完整的数据结构,是对Hash Table这一数据结构的一种实现,是一套从存储到提取都封装好了的方 ... 
- 基于Python——实现远程下载sftp文件(只下载.zip文件)
			[背景]远程下载发布包等文件时,总是要使用WinSCP等工具登陆拖动.今天就介绍一种使用python下载文件到本地的方法. [代码实现] import paramiko # paramiko模块,基于 ... 
- 『Python』库安装
			1.安装指定版本的tensorflow 虽然官网有4种安装方式,并且推荐用anaconda的方式,但是有时候我们需要指定版本的tensorflow,而pip可以做到. 比如我装的是anaconda3. ... 
- 搭建openstf平台的那些事
			最近老板建议秀下肌肉,搭建一个STF android 真机测试平台,记录一下坑. 1. stf 是node开发的,通过npm即可安静,依赖的数据库是rethinkdb, 如果搭配appium效果更佳, ... 
- django2_开发web系统接口
			1.单独创建.../sign/views_if.py文件,开发添加发布会接口 from django.http import JsonResponse from cmdb.models import ... 
- c# 转换成时间类型
			if (rngFound.Value.ToString().Contains("/")) { closingdate = rngFound.Value; } else if (rn ... 
- python之模块定义、导入、优化详解
			一.模块 1.模块的定义 模块是一组包含了一组功能的python文件,比如test.py,模块名为test,可以通过import test进行调用.模块可以分为以下四个通用类别 1 使用python编 ... 
- Spring Security 案例实现和执行流程剖析
			Spring Security Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication ... 
- tensorboard使用方法
			http://blog.csdn.net/u010099080/article/details/77426577 
