首页 搜索 关于
ivx后台组件:数据库组件
ivx后台组件:数据库组件
November  2  2021 学习 Admin

数据库是保存一个应用持久化数据的基本组件。在ivx中,目前的数据库使用的是传统的关系型数据库结构,即mysql系统,每创建一个数据库,都对应后台的一个mysql table。

数据库组件

数据库根据应用的范围,分为应用数据库与账号/企业数据库。

其中,应用数据库只能在当前应用被访问;账号/企业数据库可以在你个人或企业账号下的其他应用中进行引用和访问。

基本用法

1、数据库字段的添加与编辑

(1)字段的添加

要定义一个数据库,需要为其添加字段。
每一个数据库都有四个默认字段,即“数据ID”、“提交用户”、“创建时间”、 “更新时间”,用于记录数据的相关数据。其中,“数据ID”即该数据的唯一编号,便于数据筛选。“提交用户”即当前设备ID,只与设备有关,与用户无关;“创建时间”即数据提交时间;“更新时间”即数据最近一次更新时间。这些字段默认均不显示,当用户定义新的字段之后会自动出现。
添加自定义字段需要使用属性窗格右上角橙色的“添加”按钮:

点击该按钮,系统将弹出字段属性对话框,要求设置该列数据的数据类型和字段名称:

数据库允许定义文本、数值、图片、时间四种数据类型的字段。对于姓名、公司、职务等类型的数据,其数据类型通常使用为“文本”;对于年龄、分数等类型的数据,倾向于使用“数值”来进行存储(当然使用文本也是可行的,只是不能进行排序、求和等统计操作);对于用户头像、产品图样等类型的数据,数据类型则为图片。

此处假设需要添加一个姓名字段,选取数据类型为“文本”,在“字段名称”输入框内填写“姓名”(文本字段命名不能为纯数字)。
点击“确定”按钮,可以看到,现已成功在该数据库中添加了一个名为“姓名”的字段,其字段名称右上角的“T”字图标,表明该字段为一个文本字段:

同时,系统默认生成的提交用户等字段也会自动建立。

添加字段时,也可以为相应字段添加索引,索引的作用请见这里。

(2)字段的修改

对于已经建立的字段,如需进行二次编辑,可将鼠标移至该单元格上部,光标将变为竖直向下的箭头形状“↓”,此时单击即可选中字段。点击右键菜单“设置字段”,可再次调出字段属性对话框,对字段进行编辑,设置其类型、字段名称、编辑属性等。

(3)字段的排序
对于已经建立的字段,如需进行次序调整,需首先选中该字段,点击右键,在菜单中通过“移至前一列”、“移至后一列”选项来调整当前字段在整个数据库中所处的位置。

(4)字段的插入
对于已经建立的字段,如需在其前后插入字段,需首先选中该字段,点击右键,在菜单中通过“在前面添加列”、“在后面添加列”在其前后添加字段,添加字段的设置方法详见上文“字段的添加”。

数据库数据的录入

(1)在编辑状态下

①当数据量不大时,可以直接通过数据库属性面板录入数据。
对于自主定义的字段,可以直接目标单元格,进入数据编辑状态后进行数据录入或修改:

编辑完毕后,点击任意位置即可取消编辑状态。
数据库自带的“提交用户”、“创建时间”等字段则由系统读取相关数据,在提交数据时自动填写,不允许编辑,不允许指定数据源。

修改完毕需点击“保存修改”按钮才能保存修改,否则视为放弃修改:

数据库允许整行/列删除数据。把鼠标光标移动至数据行表头,光标将变为指向右侧的箭头“→”,点击即可整行选中当前数据行,该行出现橙色边框:

右键单击,点击菜单中的“删除当前行”选项,即可整行删除数据:

删除列可同法操作。
【注意】无法对数据库的行进行插入、排序等操作。

②对于数据量较大不便手动录入的场景,可通过外部excel数据表直接导入数据。
首先需对数据表进行处理。在首行声明表头,如果某列表头与数据库字段相匹配,则该列数据自动填充;如不匹配则视为新字段,系统自动添加。
【注意】系统将自动识别excel的首行作为表头,因此必须准确填写。对于含有多个工作簿的excel表,系统默认导入第一个工作簿。

导入外部数据表时,需点击右上角的“导入”按钮:

选取外部数据表,点击确定进行导入。

(2)在非编辑状态下

在非编辑状态下,需要借助于数据库提交事件向数据库输入数据。该事件通常与“服务”组件搭配使用(详见“服务”)
假设现在添加了一个服务,设定接受参数“name”,用于从前台获取用户姓名数据。当服务开始后,希望把该接收参数提交到数据库。则为“服务开始”触发条件添加动作,目标对象选取“数据库”,目标动作选择“提交”。系统要求指定每个字段的数据来源,从下拉菜单中选取“name”:

当服务运行并获取参数后,数据库将自动新增一条数据,“姓名”字段数据为“name”的值。

数据库的数据更新

通过“数据更新”事件,可在非编辑状态下更新数据库指定行中指定字段的数据。
该事件容许添加一个或多个搜索条件,对于符合该搜索条件的一条(或多条)记录,可选择其中的一个(或多个)字段进行更新。该组件通常与服务搭配使用。
例如,现在希望更新用户“张三”的“电话”,数据来源为服务的接受参数“telephone”。则搜索条件为:“姓名”字段的值=张三,对于符合该条件的数据行,将“电话”字段设定为“telephone”,则事件如下:

当服务运行并获取参数后,数据库完成更新操作。

数据库的数据输出

数据输出动作用于从数据库中输出一行或多行数据。
该事件容许添加一个或多个输出条件,对符合输出条件的一条(或多条)记录进行针对某字段的排序,指定输出行数。例如,现需要输出用户李四在数据库中的Top10游戏得分记录,则需要设定输出条件为“姓名”字段的值=李四,按照“得分”进行降序,输出行数为1-10行:

使用服务接收该输出结果,添加回调,当服务完成时,设置服务的返回结果“result”选择下拉列表为“输出结果·数据”:

可通过前端组件接收该服务的返回参数。
输出回调可以选择成功(有数据)和成功(无数据)两种情况,用于分别判断输出后有没有符合条件的的数据。
通过随机获取动作可以从数据库中随机输出一行或多行数据。该事件的基本用法与输出动作相同,需指定随机输出的行数:

数据库的数据统计

(1)统计目标值的数目
“统计数目”动作用于统计满足指定搜索条件的数据总数。该事件容许添加一个或多个搜索条件,系统将自动统计符合条件的数据数并输出。
例如,现在希望统计用户李四在数据库中的记录总数,需添加搜索条件:“姓名”字段的值=李四

(2)统计目标值的总和

“统计总和”动作用于统计满足指定搜索条件的所有数据行中某数值字段的总和。该事件容许添加一个或多个搜索条件,指定一个数值字段,系统将自动计算总和并输出。
例如,现在希望统计用户李四在数据库中的所有游戏记录得分总和,需添加搜索条件“姓名”字段的值=李四,选择数值字段为“得分”:

(3)统计目标值的平均数

“统计平均数” 动作用于统计满足指定搜索条件的所有数据行中某数值字段的平均数,该事件容许添加一个或多个搜索条件,指定一个数值字段,系统将自动计算平均数并输出。例如,现在希望统计用户李四在数据库中的所有游戏记录得分平均数,需添加搜索条件“姓名”字段的值=李四,选择数值字段为“得分”:

数据库的数据删除

“删除数据”动作用于删除指定数据ID的数据行,可同时输出该条数据。

批量导入数据

点击数据库的“导入”按钮,可以将一个excel里的数据,批量导入至数据库:

数据导入,有以下注意事项:
1、数据量限制:
批量导入的限制,最高是1w条,如果要导入超过1w条的数据,请联系客服,我们可以在后台免费帮您导入;

2、字段的定义:
我们会将excel表格的第一行,作为字段名称,剩余的行,作为数据进行导入;比如,我们有一个这样的excel(点击下载该测试文件):

导入数据库之后,第一行会自动作为字段名称,剩下的行作为数据:

所有通过excel导入而创建的字段,默认的字段类型为文本,如果要修改字段类型,可以在数据导入之后,手动修改字段类型;

如果数据库中已经存在和excel第一行中名称一样的字段,那系统会使用已有的字段,如果不存在excel第一行中的字段,系统会创建新的字段。还是以上面的测试excel文件为例子,假设我们的数据库中,已经定义了两个字段:姓名和

然后,我们将之前的excel文件导入,导入之后,会形成这样的表格:

系统会自动创建“手机”、“性别”这两个之前不存在的字段,但年龄字段,由于我们没有在excel表格里有定义,因此自动就是空的值。

3、数据的覆盖

正常的excel数据导入,系统会在之前的数据的基础上,添加额外的数据,举个例子,假设我们之前的数据库里,已经有了一条数据:

这个时候,如果我们把之前的测试excel文件导入,会形成这样的表格:

我们会发现,新的数据,是添加在旧数据之后的,我们可以观察到数据ID,是递增的。

但是,如果我们想要覆盖掉之前的数据,则可以在excel表格里添加一列“数据ID”。最简单的测试方法,是将现有的数据库导出,然后再导入导出的表格。此时,系统会自动按照excel里的数据ID,去表格里查找,如果有相应的数据ID的行,则对该行进行更新。

高阶用法

按数据ID更新
调用数据库提供的最基础的更新方法,我们需要为其挨次提供更新的要素,且该方法每次调用都只能更新一条数据。在需要同时更新多条数据记录的业务情境下,我们可以调用按数据ID更新这一个方法。

该方法接收一个参数,其形式为对象数组,其中数组内的对象必须包含一个 _id 的属性表示数据库的数据ID,其他的属性则为数据库的字段,该方法会依据这个 _id 和数据ID的对应关系来更新数据库记录。接下来我们以一个例子作为示范:

数据库内包含了两个自建的字段,我们想要对数据ID为1和3的数据进行name字段的更新,那么在调用方法时传入如下的对象数组(也可以直接用JSON对象的格式传入)


该方法会成功更新数据ID为1和3的数据记录,并将传入的新的name属性分别赋值给对应记录,为提供新值的属性则会维持不变。


需要注意该方法只会更新数据,不会生成新的数据,在参数内提供数据库不存在对应数据ID的对象,那么该对象的数据会被直接忽略(此案例中,参数内对象 _id 值大于3即找不到对应的记录,这样的对象会被直接忽略)。

上一篇: ivx编辑器通信组件:API组件

下一篇: ivx编辑器功能组件学习:服务组件

推荐阅读

添加新评论