动态创建表设计思路

绪论:随着需求业务的不断壮大,不能在依靠与人力手动创建一个个的表单和实体设计,这样太耗时间和工作效率低。心里想着如果能够动态创建表和表单实现,这样能够节省开发时间和提高开发效率。

 

问题:通过近几天的学习动态生成表结构,基本表结构数据可以初始化完后,也支持查询字段等操作,可以动态生成后台业务代码和前端页面,可以实现绝大多数需求操作。 但是仍有一些问题,如字典表数据和关联表数据,仍没有一个好的设计和实现。主要从两个方面体现,一是关联表数据作为查询时,要获取关联的所有数据,二是关联表显示时,本身数据库存储的是id数据,页面需要展示中文字段还有可能需要需要根据某个关联字段的中文字段进行模糊查询。

 

 

接下来讲述目前动态创建表实现原理:

  1. 首先是要创建好表,加上注释以及必要的条件
  2. 然后选择需要生成文件的表。

image.png

  1. 接着设置字段的属性信息,如查询、列表展示和是否可编辑。这些字段只要是只是用来生成页面的时候进行设计,比如查询有些字段是可以查询的,在生成页面的时候,会自动把查询条件添加得到页面上,得到自动配置页面。但是这种会有一个弊端,因为如果我要是修改某个字段的查询,页面上不会自动更新,所以这里没有达到页面的查询语句也是动态创建。同理插入和编辑等都是一样的。image.png
  2. 在这里说一下表结构设计。

首先除了自己设计的表外,又创建了一个产生表,记录下产生的所有表结构情况,把每个表记录个表id,然后记录表的详细信息。

image.png

然后有一个关于每一列的数据,记录该列的类型、是否可以查询和列表显示等等。image.png

到这里动态的表结构就算结束了。

 

  1. 协同办公

设计:自己偶然的机会接触到协同办公系统  ,这个系统实现了动态实现表的逻辑,包含查询字段、列表显示和关联字段等等。但是由于某些原因,没有看到数据库表结构。

他们的表是动态创建的。动态创建表,然后会添加列字段,不允许删除列,但是列较多的话,有可能会造成数据的冗余,这个数据量不大可以忽略。

 

  1. 自己想法

目前来讲动态创建表结构,实现动态配置和页面显示,协同办公的设计很符合要求。即 动态创建表,然后动态增加列属性,然后设计表记录查询字段、编辑字段、新增字段等,并记录每个字段的属性,前端根据字段属性去渲染页面。

 

我个人感觉目前的难点在于 关联字段的设计和显示,比如字段的id和name的互相转化等, 这些着实有点难操作,还有关联字段的name模糊查询,这些都是要考虑的情况。可能有些系统已经把这个功能实现,只是我们没有机会接触到,希望可以早日理解。

 

  1. 展望

自己会继续探索,想出个好的思路,能够动态实现表的自动配置。这种适合简单业务的开发和动态部署,能够节省开发时间,希望可以早日实现。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
vue3 动态表单组件的设计思路可以分为以下几个步骤: 1. 定义数据结构:首先确定表单需要收集的数据类型和字段,比如文本输入、下拉选择、单选、多选等等。可以使用对象或数组的方式来表示表单的数据结构,并为每个字段指定相应的属性(例如字段名称、类型、默认值、选项等)。 2. 构建表单组件:创建一个包含所有表单字段的组件,并根据数据结构动态生成表单元素。可以使用`v-for`指令循环渲染表单字段,并根据字段类型选择合适的表单元素组件进行渲染。 3. 实现数据绑定:为每个表单元素添加相应的`v-model`指令,将用户输入的值与表单组件的数据进行双向绑定。这样可以实时更新表单组件中的数据,并且用户输入的值也会反映在相应的表单字段上。 4. 处理提交事件:在表单组件中添加一个提交按钮或者监听表单的提交事件,在用户点击提交按钮或者提交表单时,通过方法或事件处理函数收集表单数据并进行相应的处理,比如发送给后端进行保存或进一步处理。 5. 提供扩展性:考虑到动态表单可能会有不同的需求,可以通过添加插槽或者额外的属性来提供扩展性。比如可以为表单组件添加一个插槽,用于自定义表单的布局或者添加额外的表单字段。 通过以上的设计思路,可以实现一个灵活、可复用的动态表单组件,使表单的设计和渲染更加简洁和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值