乐趣区

关于javascript:零代码实现一对一表关系和无限主子表级联保存

零代码实现一对一表关系和有限奴才表级联保留

在上一篇 订单和产品的多对多表关系在 crudapi 零碎零代码实现 中,介绍了订单中一对多、多对一、以及多对多关系,本文次要介绍一对一关系和有限奴才表在 crudapi 零碎中的利用。

概要

一对一

一对一关系是指关系数据库中两个表之间的一种关系。关系数据库中第一个表中的单个行只能够与第二个表中的一个行相干,且第二个表中的一个行也只能够与第一个表中的一个行相干。
在一对多关系中,外键建设在子表中;在一对一关系中,外键能够建在主表或者子表中,为了保持一致,crudapi 零碎中对立将一对一关系中外键也建设在子表中,这样的益处是如果未来须要解除表关系的时候,无需批改主表构造。

客户资料

客户 customer 主表中,通常寄存根本信息,如果有更多材料能够思考独自寄存在客户资料 customerProfile 表中,它们之间能够用一对一关系实现。

客户和客户资料:一对一(奴才方向)


之前创立客户 customer 表放弃不变


创立客户资料 customerProfile 表,次要包含客户编号字段、生日、性别、喜好等,其中客户编号 customerId 字段用于建设表关系


建设奴才方向一对一关系,客户 customer 表的编号 id 字段,指向客户资料 customerProfile 的客户编号 customerId 字段,关系的英文名称 profile 用于查问关联对象的时候,设置导航属性名称为 profile。

客户资料和客户:一对一(子主方向)


建设子主方向一对一关系,客户资料 customerProfile 的客户编号 customerId 字段,指向客户 customer 表的编号 id 字段,关系的英文名称 customer 用于查问关联对象的时候,设置导航属性名称为 customer,和之前订单和客户多对一关系有点相似,关联对象都是 customer 对象,不过那个时候多个订单能够关联同一个客户,当初一个客户资料只能关联一个客户。

客户奴才表级联保留


ui 创立客户,同时输出子表客户资料信息,chrome 关上网络申请记录,能够看到 POST body 如下:

{
    "name": "刘备",
    "mobile": "13699998888",
    "email": "liubei@crudapi.cn",
    "profile": {
        "name": "刘备材料",
        "birthday": "2021-02-14",
        "sex": "男",
        "hobby": "骑马"
    }
}

其中 profile 为客户资料信息,


查问客户详情,发现客户和客户资料信息一次性保留胜利!上一篇文章中,销售订单和订单行是一对多奴才关系,
子表是数组模式,在一对一奴才关系中子表是对象模式,在数据库中表现形式是雷同的,外键都是建在子表中。

间接操作客户资料


也能够间接创立客户资料表,抉择挂在指定客户下,能够达到同样的成果。

有限子表

通过设置表关系,一对多和一对一(奴才方向)实践上能够有限关联上来,所有的表一次性级联保留,比方省市区通常能够达到 3 级子表,目录文件属于有限子表。

省市区三级子表

省和市是一对多关系,市和区是一对多关系。


ui 成果,江苏省包含南京和淮安两个城市,南京市又包含江宁区和雨花台区。

目录有限子表

一级目录下能够包含子目录和文件,如果是子目录,子目录能够持续包含子目录和文件

图目录有限子表 -1


图目录有限子表 -2

ui 成果,子表包含目录和文件,还能够持续开展上来,因为屏幕大小的起因,这里就不一一展现了。

查问目录列表

小结

本文介绍了一对一关系,包含奴才方向和子主方向,加上一篇文章中一对多,多对一,多对多关系,到目前为止所有的表关系都实现了。crudapi 零碎通过配置的形式实现了对象之间的关联,无需编程实现了奴才表 CRUD 操作。

附 demo 演示

本零碎属于产品级的零代码平台,不同于主动代码生成器,不须要生成 Controller、Service、Repository、Entity 等业务代码,程序运行起来就能够应用,真正 0 代码,能够笼罩根本的和业务无关的 CRUD RESTful API。

官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login

退出移动版