BeX5开发中MySQL视图使用的一个小问题

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

问题

    数据操作中的查询是极端重要的,使用频繁。MySQL数据库中视图概念的存在十分类似于微软Access小型关系数据库中的查询(二级考试重点)。视图的存在极大减小了数据表的创建数量,而且还有更为高级的运用技巧。本文介绍在基于起步科技的BeX5平台上使用MySQL数据库中视图时反向生成本体时注意的一个小问题。


    MySQL数据库中表在BeX5平台开发中对应于“物理表”概念,但是为了增强软件开发中数据层的灵活性(软件需求阶段的实体结构不是一下百分之分确定的;有时需要不断调整),平台引入了本体的概念。


    实际开发中,一般需要先创建本体,再由本体生成物理表。但是,有时在已经存在物理表的情况下,也需要由物理表反向生成本体。


    上面提到了视图(相当于ACCESS的选择查询)的重要性;但是,要想在BeX5平台开发中使用视图技术,则必然需要和本体打交道。这就需要由视图反向生成本体。


    第一,在MySQL中创建视图是比较简单的,如下例:

1
2
3
4
CREATE  VIEW  AS  mv_homepage_person_view
SELECT  a.fID,a.fLegCode,a.fCaseName,a.fBeginDate,a.fWho,b.fPersonName,c.fEndDate
FROM  MV_LegInfo a,MV_Person2 b,MV_Penalty2 c
where  a.fLegCode=b.fLegCode  and  b.fLegCode=c.fLegCode


    上述视图一旦保存,便生成MySQL中的一个物理表(这一点与Access的生成表查询是一致的)。


    第二,在平台端即可由上述由视图创建的表反向生成平台开发要求的本体。


    此过程中,许多初次使用这个功能的同学往往在创建上面视图时忽略了字段a.fID的选择,而这个字段在默认的平台生成的本体中是担当主键作用的,而且其默认值为guid()。如果不选择这个字段,则创建UI2端.W文件时引用此本体对应的ACTION必然出现错误(提示大致内容是缺少fID字段)!


解决办法


    经过上面分析,解决上述问题的办法就很简单了。但是,要注意两个小问题:


    (1)在上面创建视图时一定要选择某一个表的fID字段(其实也未必一定是这个字段,只要是直到主键作用的字段理论上讲都可以--但后面的guid()函数很可以不再适合了,需要根据需要灵活表达)。


    (2)在反向生成本体后,一定要修改一下“主键关系”,类似于下图:


wKiom1lVwmPRFNMNAACsfutSDCw669.jpg-wh_50


    点击上面的“主键关系”后在弹出的对话框中选择你创建视图时选择的主键即可。当然,在此高度建议使用默认的fID作为主键。这就要求生成视图的子表中要提供fID字段(这个是平台默认支持的)。


  之后的其他操作便不再赘述。尽管视图生成的子表是“死”的,但是由于创建视图的create view语句可以轻松修改,即可以根据开发需要随时创建需要的这种临时表;所以,视图的应用在数据库端是高频的。相应地,在BeX5平台上由视图反向生成本体的操作也会是高频的。














本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1943409 ,如需转载请自行联系原作者






相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:视图之美,简化查询、提升效率的数据库利器(14)
轻松入门MySQL:视图之美,简化查询、提升效率的数据库利器(14)
|
20天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
19 0
|
1月前
|
存储 关系型数据库 MySQL
MySQL中如何创建一个视图
MySQL中如何创建一个视图
20 0
|
1月前
|
存储 关系型数据库 MySQL
mysql视图
mysql视图
|
2月前
|
SQL 存储 关系型数据库
【MySQL技术专题】「实战开发系列」一同探索一下数据库的加解密函数开发实战指南之AES系列
【MySQL技术专题】「实战开发系列」一同探索一下数据库的加解密函数开发实战指南之AES系列
51 0
|
3天前
|
关系型数据库 MySQL
MySQL第四战:视图以及常见面试题(上)
MySQL第四战:视图以及常见面试题(上)
|
5天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
47 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
12天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。
|
16天前
|
JavaScript 前端开发 关系型数据库
node+vue3+mysql前后分离开发范式——实现视频文件上传并渲染
node+vue3+mysql前后分离开发范式——实现视频文件上传并渲染
26 1
|
16天前
|
JavaScript 前端开发 API
node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查
node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查
36 1