基于模块自定义扩展字段的后端逻辑实现(一)

news2025/1/16 9:21:56

目录

一:背景介绍

二:实现过程

三:字段标准化

四:数据存储

五:数据扩展

六:表的设计


一:背景介绍

  最近要做一个系统,里面涉及一个模块是使用拖拉拽的形式配置模块使用的字段表单,主要包括新建/编辑模块,模块详情等。这里涉及的重点是新建模块的表单是手动拖拉拽配置出来的,里面的字段类型和数量也是任意的。

配置完以后,在新建模块页面可以读取配置的表单数据,用户填写数据,保存数据,在列表或者详情查看。

二:实现过程

基于模块自定义扩展字段的后端逻辑实现,通常涉及到以下几个步骤:

首先,需要明确业务需求。确定需要哪些扩展字段,以及这些字段的用途。例如,一个用户管理模块可能需要一个自定义字段来存储用户的生日。

数据库设计:在设计数据库时,你需要为每个自定义扩展字段创建一个新的列。通常,这些列会存储在一个专门的表中,这个表会和主表(例如用户表)通过某种关联(例如外键)进行连接。

后端逻辑实现:

模型定义:在后端代码中,你需要定义一个模型来映射到数据库中的表。
数据存储:当需要存储数据时,你可以创建一个方法来处理自定义字段的存储。这个方法应该能够接受一个对象,其中包含所有的字段(包括自定义字段),然后将这些字段存储到数据库中。
数据检索:当需要从数据库中检索数据时,你需要创建一个方法来获取所有的字段,包括自定义扩展字段。这个方法应该能够返回一个包含所有字段的对象。
数据更新:当需要更新数据时,你可以创建一个方法来处理自定义字段的更新。这个方法应该能够接受一个对象,其中包含所有的字段(包括自定义字段),然后将这些字段更新到数据库中。
前端交互:在前端界面上,你需要为每个自定义扩展字段提供一个输入框或其他类型的输入控件。当用户填写这些字段并提交表单时,前端代码应该将这些数据发送到后端进行处理。

安全性和验证:在处理数据时,你需要确保数据的安全性和完整性。例如,你可以使用输入验证来确保用户输入的数据是有效的,并且符合你的业务规则。

三:字段标准化

  这样的业务问题,我们要做的开发,首先要把问题标准化。上面谈到字段是自定义的,因为涉及到逻辑编码,我们需要把字段归类分组,字段的作用是在表单创建和展示使用,我们正常的创建表单一般是一个标题对应一组字段。比如说商品基础信息对应商品价格,商品数量等基本信息字段。这里的商品基础信息我们可以定义为字段分组,商品价格可以定义为字段。这样我们的字段可以分为两种类型,一种是分组仅仅是展示使用,一种是字段本身需要存储数据。我们确定了字段的类型以后,我们发现正常一个表单的字段是需要展示样式和布局的比如说input类型的单行文本和select类型的下拉数据这是两种不同的布局,因此我们的字段也是需要根据不同的类型,进行不同的处理。我们可以把常用的数据类型分组归类大致分为单行文本,多行文本,下拉,日期,单选,布尔等。

四:数据存储

上面我们把字段归类和分组,这样一个新建的表单已经可以做出来了,并且可以根据不同的字段类型显示不同的布局和样式。那么我们在表单填写完数据以后,如何存储是一个问题。由于我们的模块创建以后是需要列表展示的,那就可能涉及到搜索问题。因此我们把字段进行横向扩展是一个好方法。比如新建一个字段,我们会在业务主表里扩展一个字段。这样列表的每一个字段都是独立的,支持搜索和后期统计功能。这样新建一个模块数据,相当于主表里插入一行数据。

五:数据扩展

我们主表里的数据是一对一的,但是有些数据可能需要一对多,比如一个商品可能对应多个规格,这样规格的数据就需要多行存储。所以我们需要扩展主表的数据,需要建立一个扩展规格表,那么我们建立规格类型数据的时候,需要在扩展规格表里横向扩展数据。

六:表的设计

 首先我们需要创建一个存储字段库的表,这里用来存储各种类型的字段和字段分组。前端拖拉拽的字段都来自这里,其次我们需要创建一个业务主表,用来存储一些扩展字段数据和一些固定字段。这里说下固定字段一个业务里面虽然模块是自定义拖出来的,但是必定有些字段是固定的比如创建时间,创建人等。最后我们还需要一个扩展字段表,用以保存一些一对多的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1370889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sympy质点模型

文章目录 质点动能和动能势能角动量 质点 粒子,或者说质点,堪称经典物理中的核心模型了,其所具备的重要物理量,包括质量、能量、动量、角动量之类,也早已从经典力学蔓延出去,成为内涵更加深刻的物理概念。…

Linux系统操作——tcping安装与使用

目录 .一、安装 1、安装依赖 tcptraceroute和bc 2、安装tcping 3、赋予tcping执行权限 4、测试 5、tcping返回结果说明 二、使用说明(参数) 一、安装 1、安装依赖 tcptraceroute和bc 【 CentOS 或 RHEL】 sudo yum install -y tcptraceroute bc…

Open CASCADE学习|创建拓朴

目录 1、创建点gp_Pnt 2、创建向量gp_Vec 3、创建边TopoDS_Edge 4、线网络TopoDS_Wire 5、面TopoDS_Face 6、体TopoDS_Shape OpenCascade中的拓朴实体如下图所示,其中Compound可以包含很多Solid;Solid由Shell包围而成;Shell由相连的Fac…

通信用磷酸铁锂电池做YD/T2344.1招标报告

通信用磷酸铁锂电池做YD/T2344.1标准报告 YD/T 2344.1标准范国: YD/T 2344.1规定了通信用磷酸铁鲤电池组的定义、要求、试验方法、检验规则及标志、包装、运输和贮存本部分适用于电池模块与电池管理系统集成为一体的通信用磷酸铁电池组。 YD/T 2344.1测试要求&…

linux异常情况,排查处理中

登录客户环境后,发现一个奇怪情况如下图,之前也遇到过,直接fuser -ck /backup操作的话,主机将会重启,因数据库运行中,等待停机维护时间,同时也在想办法不重启的情况下解决该问题 [rootdb ~]# f…

哪个品牌的超声波清洗机最好?超声波清洗机是如何工作的呢?

作为一个经常佩戴眼镜,却又经常因为眼镜脏了而头疼的人来说,又是对这些智能家居一窍不通的,我曾经非常苦恼于到底如何选购超声波清洗机,经过一番做功课以及实践,我精选出几款适合清洗眼镜超声波清洗机,来以…

004集 try-except 语句应用实例—python基础入门实例

try-except 该语句用来处理异常情况。 try块中包含可能抛出异常的语句,而except块则用来处理异常。如果try块中出现了异常,那么程序将跳过try块中剩余的语句,转而执行except块的语句。 try: 可能产生异常的代码块 except [ (Error1, E…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票创建后端实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

【39 Pandas+Pyecharts | 第七次人口普查数据分析可视化】

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 数据预览 🏳️‍🌈 3. Pyecharts数据可视化3.1 全国各省人口统计三维地图3.2 全国各地区人口数量分布地图3.3 全国人口性别比例3…

Make自动化构建程序工具介绍

Makefile是一种用来自动化构建程序的工具于,主要在UNIX和类UNIX系统上使用。它使用一种简单的语法来定义目标和依赖关系,从而实现自动化构建和管理项目的过程。 一个Makefile由一系列规则组成,每个规则包含一个目标和一组依赖文件。目标是要…

数十位大咖共话AI大模型落地,2024 AI 科技峰会前瞻 | 光锥智能

在ChatGPT带起的AI浪潮中,我们进入了一个科技狂奔的时代。 2023年,风云变幻中,我们见证了中国数百个大模型如雨后春笋般冒出,在多个重要版本的优化下,我们见证了大模型以光速迭代,在参数量、长文本、多模态…

Rancher2部署MySQL无法挂载Longhorn创建的pvc,怎么办?

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 环境描述: rancher版本:v2.5.7 Longhorn版本:v1.1.1 MySQL版本:v5.7.26 问题描述…

基于Spring Boot框架的音乐平台

如今,互联网上的管理系统种类越来越多,人们思考将网站的使用运用到生活的方方面面,所以我联想到的是设计一个音乐平台,由于音乐平台的发展以及业务的提升,对音乐平台管理的要求越来越高,而一个稳定的音乐平…

AI人工智能虚拟现实行业发展分析

AI人工智能和虚拟现实是当今科技领域最受关注和研究的两个领域。这两项技术的迅速发展给各行各业带来了巨大的变革和机遇。在过去的几年里,AI和虚拟现实已经取得了显著的进展,并且有着广阔的发展前景。 AI人工智能作为一种模拟人类智能的技术&#xff0…

C#,数值计算,高斯消元法与列主元消元法的源代码及数据动态可视化

高斯消元法! 一、高斯消元法 Gaussian Elimination 高斯消元法(或译:高斯消去法),是线性代数中的一个常用算法,常用于求解线性方程组和矩阵的逆。 本程序的运行效果: 1、高斯消元法的动画演示…

成功解决使用git clone下载失败的问题: fatal: 过早的文件结束符(EOF) fatal: index-pack 失败

一.使用 http 可能出现的问题和解决 1.问题描述 ~$ git clone https://github.com/oKermorgant/ecn_baxter_vs.git 正克隆到 ecn_baxter_vs... remote: Enumerating objects: 13, done. remote: Counting objects: 100% (13/13), done. remote: Compressing objects: 100% (…

免费分享一套微信小程序扫码点餐(订餐)系统(uni-app+SpringBoot后端+Vue管理端技术实现) ,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的微信小程序扫码点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) ,分享下哈。 项目视频演示 【免费】微信小程序扫码点餐(订餐)系统(uni-appSpringBoot后端Vue管理端技术实现) Java毕…

etcd跨主机通信与Flannel

跨主机通信 Docker 默认的网络环境下 , 单台主机上的 Docker 容器可以通过 docker0 网桥直接通信 , 而不同主机上的 Docker 容器之间只能通过在主机上做端口映射进行通信。 这种端口映射方式对很多集群应用来说极不方便。 如果能让 Docker 容器之间直接使用自己的 IP 地址进…

如何通过UMC进行产品升级

随着互联网、云计算技术的深入发展,为降低企业大规模云应用建设的难度和成本,支持云应用开发、运行与运维一体化的云应用平台软件应运而生。在数通家族中对公司集成套件的云平台开发、部署、管理、运维进行统一管理,实现数据集成和共享的平台…

FFmpeg获取音视频流信息

文章目录 前言一、需求二、源码三、运行结果 前言 本文记录用 FFmpeg 获取视频流音频流的信息(编码格式、分辨率、帧率、播放时长…),所用的工程基于上个博客编译成功的工程:使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c 一、需求…