La relación de tabla de muchos a muchos entre pedidos y productos se implementa en el sistema crudapi con código cero.

Gestión de relaciones de mesa

En la gestión de números de serie anterior , el producto y las órdenes de venta son tabla única aislada, la relación crudapi de la tabla de papel (relación) para administrar varias tablas unidas para formar un todo.

Visión de conjunto

Tipo de relación

La relación entre la mesa y la mesa (relación), dividida en tres tipos.
Uno a uno (uno a uno): Existe una correspondencia uno a uno entre un objeto y otro, por ejemplo, un estudiante solo puede estar en una clase.
Uno a varios: un objeto puede pertenecer a varias instancias de otro objeto, como un registro que contiene varias canciones.
Muchos a muchos (muchos a muchos): los dos objetos están en una relación de "uno a muchos" entre sí. Por ejemplo, un registro contiene varias canciones y una canción puede pertenecer a varios registros en el Mismo tiempo.

Pedido

Un pedido completo consta principalmente de 4 tablas: la tabla principal del pedido de ventas (salesOrder), la línea de pedido (salesOrderLine), el producto (producto) y el cliente (cliente). La relación entre ellos es la siguiente:

Pedidos y clientes: muchos a uno

cliente
Primero cree la tabla de clientes, que contiene principalmente campos como ID de número, teléfono móvil, correo electrónico, número de tarjeta de membresía, etc.

órdenes de venta
Agregue un campo de número de cliente a la tabla de órdenes de venta para establecer una relación de tabla

relación con el cliente
Establezca una relación de varios a uno. El campo customerId customer number de la tabla salesOrder apunta al campo de identificación del número del cliente. Cuando se utiliza el nombre en inglés de la relación customer para consultar el objeto asociado, establezca el nombre de la propiedad de navegación en customer. Al realizar la consulta el pedido, el objeto cliente es consultado por customerId. El formato del objeto salesOrder es el siguiente:

{
    "id": 4,
    "name": "足球 跑鞋订单",
    "createdDate": 1613182392000,
    "orderNo": "SO20210213101311719",
    "productPrice": 380,
    "expressFee": 10,
    "totalPrice": 390,
    "customerId": 2,
    "customer": {
        "id": 2,
        "name": "关羽"
    }
}

Órdenes y líneas de orden: uno a varios

salesOrderLine
Primero, cree la tabla de línea de pedido, que contiene principalmente campos como ID de número, número de pedido, número de producto, precio unitario, cantidad y subtotal.

salesOrderLinesRelation
Para establecer una relación de uno a varios, el campo de ID de número de la tabla de pedidos de ventas salesOrder apunta al campo de número de pedido salesOrderId de la línea de pedido salesOrderLine, y el nombre en inglés de la relación salesOrderLines se utiliza para consultar el objeto asociado. Establecer el nombre de la propiedad de navegación a salesOrderLines y el contenido a ser una matriz.

Líneas de pedido y productos: muchos a uno

producto
La tabla de productos sigue siendo la misma que antes y contiene principalmente campos como ID de número, número de pedido, número de producto, precio unitario, cantidad y subtotal.

productRelation
Establezca una relación de varios a uno. El campo productId número de producto de la tabla salesOrderLine de la línea de pedido apunta al campo de identificación del número de producto del producto. El producto de nombre en inglés de la relación se utiliza para consultar el objeto asociado. Establecer el nombre del atributo de navegación al producto. Al consultar la línea de pedido, consulte el objeto del producto por productId.

Diagrama completo

relacionGraph
El pedido salesOrder y el producto producto están en una relación de varios a varios. La conexión se establece a través de la tabla intermedia de la línea de pedido salesOrderLine, que en realidad es una combinación de "uno a varios" y "varios a varios". one ". Después de establecer todas las relaciones, el objeto salesOrder El formato es el siguiente:

{
    "id": 4,
    "name": "足球 跑鞋订单",
    "createdDate": 1613182392000,
    "orderNo": "SO20210213101311719",
    "productPrice": 380,
    "expressFee": 10,
    "totalPrice": 390,
    "customerId": 2,
    "customer": {
        "id": 2,
        "name": "关羽"
    },
    "salesOrderLines": [{
        "id": 1,
        "name": "2个足球",
        "createdDate": 1613182392000,
        "salesOrderId": 4,
        "productId": 5,
        "unitPrice": 58,
        "quantity": 2,
        "subTotal": 116,
        "product": {
            "id": 5,
            "name": "足球"
        }
    }, {
        "id": 2,
        "name": "3双跑鞋",
        "createdDate": 1613182392000,
        "lastModifiedDate": 1613190617000,
        "salesOrderId": 4,
        "productId": 4,
        "unitPrice": 88,
        "quantity": 3,
        "subTotal": 264,
        "product": {
            "id": 4,
            "name": "跑鞋"
        }
    }]
}

verificación

Crear orden

createSalesOrder
ui crea un pedido, admite el ahorro conjunto de los niveles de tabla principal y secundaria, y los clientes y productos se pueden seleccionar a través del control de selección.

Verifique los detalles del pedido

getSalesOrder

resumen

Este artículo presenta las relaciones uno a muchos y muchos a uno en el orden. La asociación entre objetos se realiza a través de la configuración, y la operación CRUD de las tablas principales y secundarias se realiza sin programación, y todos los tipos de relaciones se introducen en detalle más adelante.

Demostración adjunta

Este sistema pertenece a una plataforma de código cero a nivel de producto. Es diferente de un generador de código automático. No necesita generar Controlador, Servicio, Repositorio, Entidad y otros códigos comerciales. El programa se puede utilizar después de ejecutarse. El código cero puede cubrir la API RESTful CRUD básica e independiente del negocio.

Dirección del sitio web oficial:https://crudapi.cn
dirección de prueba:https://demo.crudapi.cn/crudapi/login

Supongo que te gusta

Origin blog.51cto.com/15149911/2677926
Recomendado
Clasificación