零代码在crudapi系统中实现了订单与商品的多对多表关系在上一个序号管理,产品和销售订单是隔离的对于单张表,本文通过crudapi中的表关系(relation)管理将多个表连接起来形成一个整体。汇总关系类型表之间存在三种类型的关系。一对一(one-to-one):一个对象与另一个对象是一一对应的,比如一个学生只能在一个班级。一对多:一种类型的对象可以属于另一种类型对象的多个实例,例如包含多首歌曲的专辑。多对多:两个对象彼此之间具有“一对多”关系。例如,一条记录包含多首歌曲,一首歌曲可以属于多条记录。Order完整的订单主要由4张表组成:销售订单主表(salesOrder)、订单行(salesOrderLine)、产品(product)、客户(customer),它们之间的关系如下:订单与客户:多对一优先创建客户表主要包括号码ID、手机、邮箱、会员卡号等字段,销售订单表添加客户号码字段建立表关系,建立多对一的关系。销售订单salesOrder表的customerId客户编号字段指向customer客户id字段的编号,关系customer的英文名称用于查询关联对象,设置导航属性名称为customer,查询订单时,通过customerId查询customer对象,salesOrder对象格式如下:{"id":4,"name":"足球跑鞋订单","createdDate":1613182392000,"orderNo":"SO20210213101311719","productPrice":380,"expressFee":10,"totalPrice":390,"customerId":2,"customer":{"id":2,"name":"关羽"}}订单和订单行:one-to-many首先创建一个订单行表,主要包括ID、订单号、产品编号、单价、数量、小计等字段。建立一对多关系,销售订单salesOrder表的numberid字段指向订单行salesOrderLine的订单号salesOrderId字段。当使用关系salesOrderLines的英文名称查询相关对象时,设置导航属性名称为salesOrderLines,内容为数组。订单行和产品:多对一的产品表不变,主要包括ID、订单号、产品号、单价、数量、小计等字段。建立多对一关系,订单行的salesOrderLine表的productId产品编号字段指向product产品的编号id字段。当使用关系的英文名称product查询关联对象时,设置导航属性名称为product。查询订单行时,通过productId查询商品对象。完整的关系图订单salesOrder和产品product是多对多的关系。通过订单行salesOrderLine的中间表建立连接,实际上是由“一对多”和“多对一”两种关系合并而成。建立好所有关系后,salesOrder对象格式如下:{"id":4,"name":"SoccerRunningShoesOrder","createdDate":1613182392000,"orderNo":"SO20210213101311719","productPrice":380,"expressFee":10,"totalPrice":390,"customerId":2,"customer":{"id":2,"name":"关羽"},"salesOrderLines":[{"id":1,"name":"2Football","createdDate":1613182392000,"salesOrderId":4,"productId":5,"unitPrice":58,"quantity":2,"subTotal":116,"product":{"id":5,"name":"football"}},{"id":2,"name":"3双跑鞋","createdDate":1613182392000,"lastModifiedDate":1613190617000,"salesOrderId":4,"productId":4,"unitPrice":88,"quantity":3,"subTotal":264,"product":{"id":4,"name":"runningshoes"}}]}Verifyandcreateorderui创建订单,支持主分表级联存。客户和产品可以通过select控件选择查询订单详情。总结本文介绍了订单中的一对多和多对一关系。该方法实现了对象之间的关联,无需编程即可实现主、分表的CRUD操作,然后详细介绍了所有的关系类型。附上demo演示本系统是一个产品级的零代码平台。不同于自动代码生成器,它不需要生成Controller、Service、Repository、Entity等业务代码。业务独立的CRUDRESTfulAPI。官网地址:https://crudapi.cn测试地址:https://demo.crudapi.cn/crudapi/login
