傻瓜式一键生成主子表

这篇具有很好参考价值的文章主要介绍了傻瓜式一键生成主子表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

傻瓜式一键生成主子表

直接将xml导入到Studio里即可。下载文件连接:

  • CSDN链接
  • 阿里云盘

简介

  • 很多同学在创建主子表时,都会可能遇到如下一些问题
    • 例如编译不过去,
    • 创建得子表ID每次不重新自增。
    • 编译关系时逻辑搞不清,编译不通过。
    • 主子表数据Global,索引Global使用混乱。

下面介绍如何一键生成标准的主子表。再也不用为创建主子表而烦恼。

创建主子表

ClassMethod CreateMainSub(mainClassName As %String, mainColumns As %List = "", subClassName As %String, subColumns As %List = "") As %Status

其中:

  • mainClassName - 主表类名称。
  • mainColumns- 主表列名类型为%List
    • 参数示例:$lb($lb("propName", "propType"), $lb("propName", "%propType"))
    • 其中propName - 为属性名称,propType - 为属性类型
  • subClassName- 子表类名称
  • subColumns- 主表列名类型为%List
    • 参数示例:$lb($lb("propName", "propType"), $lb("propName", "%propType"))
    • 其中propName - 为属性名称,propType - 为属性类型

示例

  1. 首先确定数据库中是否有需要创建的主子表类。这里创建User.MainUser.Sub主子表。

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

  1. 运行CreateMainSub方法。
    • 创建主表User.Main主表增加列name类型为%String,列age类型为%Integer
    • 创建主表User.Sub主表增加列desc类型为%String,列date类型为%Date
USER>w ##class(Util.GenerateClassUtils).CreateMainSub("User.Main", $lb($lb("name", "%String"), $lb("age", "%Integer")), "User.Sub", $lb($lb("desc", "%String"), $lb("date", "%Date")))2023-07-09 13:04:50上启动了编译
,正在编辑2类
编译类 User.Main
编译类 User.Sub
正在编译表 SQLUser.Main
正在编译表 SQLUser.Sub
正在编译routine User.Main.1
正在编译routine User.Sub.1
0.174s中已成功完成编译.2023-07-09 13:04:50上启动了编译
编译类 User.Sub
正在编译表 SQLUser.Sub
正在编译routine User.Sub.1
0.118s中已成功完成编译.2023-07-09 13:04:50上启动了编译
,正在编辑2类
编译类 User.Main
编译类 User.Sub
正在编译表 SQLUser.Main
正在编译表 SQLUser.Sub
正在编译routine User.Main.1
正在编译routine User.Sub.1
0.217s中已成功完成编译.
1
  1. 创建后可以查看Studio,主子表已经创建完成。

    查看主表User.Main如下图:

    • 标识1处:主表User.Main自动添加Relationship关系属性Relationship sub As User.Sub [ Cardinality = children, Inverse = main ];
    • 标识2处:Global名称为^User.MainD^User.MainI^User.MainS

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

查看子表User.Sub如下图:

  • 标识1处:子表User.Sub自动添加Relationship关系属性Relationship main As User.Main [ Cardinality = parent, Inverse = sub ];
  • 标识2处:DataLocationIdLocation与主表Global保持一致,且增加I节点,这样做的目的是每次子表每次插入的数据ID是重新自增的。
  • 标识34处:与主表索引GlobalGlobal保持一致。

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

  1. 插入主子数据验证表创建是否正确。
ClassMethod SaveMainSub()
{
	ts
	
	s main = ##class(User.Main).%New()
	s main.name = "yx"
	s main.age = "18"
	s sc = main.%Save()
	q:($$$ISERR(sc)) $system.Status.GetErrorText(sc)
	s id = main.%Id()
	
	s sub = ##class(User.Sub).%New()
	s sub.desc = "苹果"
	s sub.date = +$h
	d sub.mainSetObjectId(id)
	s sc = sub.%Save()
	q:($$$ISERR(sc)) $system.Status.GetErrorText(sc)
	s sc = main.sub.Insert(sub)
	q:($$$ISERR(sc)) $system.Status.GetErrorText(sc)
	
	s sub = ##class(User.Sub).%New()
	s sub.desc = "华为"
	s sub.date = +$h
	s sub.main = main
	s sc = sub.%Save()
	q:($$$ISERR(sc)) $system.Status.GetErrorText(sc)
	s sc = main.sub.Insert(sub)
	q:($$$ISERR(sc)) $system.Status.GetErrorText(sc)
	
	tc

	q sc
}
USER> w ##class(Util.GenerateClassUtils).SaveMainSub()
1
USER> w ##class(Util.GenerateClassUtils).SaveMainSub()
1

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

  1. gif动图示例

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

根据已有主表创建子表

ClassMethod CreateSub(mainClassName As %String, subClassName As %String, subColumns As %List = "") As %Status

其中:

  • mainClassName - 主表类名称。
  • subClassName - 子表类名称。
  • subColumns- 子表列名类型为%List
    • 参数示例:$lb($lb("propName", "propType"), $lb("propName", "%propType"))
    • 其中propName - 为属性名称,propType - 为属性类型

示例

  1. 为已经存在的User.Book表创建子表。

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

  1. 运行CreateSub方法。
USER>w ##class(Util.GenerateClassUtils).CreateSub("User.Book", "User.Sub", $lb($lb("desc", "%String"), $lb("date", "%Date")))2023-07-09 13:22:12上启动了编译
,正在编辑2类
编译类 User.Book
编译类 User.Sub
正在编译表 SQLUser.Book
正在编译表 SQLUser.Sub
正在编译routine User.Book.1
正在编译routine User.Sub.1
0.195s中已成功完成编译.2023-07-09 13:22:12上启动了编译
编译类 User.Sub
正在编译表 SQLUser.Sub
正在编译routine User.Sub.1
0.098s中已成功完成编译.2023-07-09 13:22:12上启动了编译
,正在编辑2类
编译类 User.Book
编译类 User.Sub
正在编译表 SQLUser.Book
正在编译表 SQLUser.Sub
正在编译routine User.Book.1
正在编译routine User.Sub.1
0.180s中已成功完成编译.
1
  1. 会为已经存在的主表自动添加关系属性与子表。

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

  1. gif示例

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

创建空属性主子表

ClassMethod CreateMainSubNoneProp(mainClassName As %String, subClassName As %String) As %Status

其中:

  • mainClassName - 主表类名称。
  • subClassName - 子表类名称。

示例

  1. 快捷创建主子表,不设置属性,创建主子表后,由开发人员自由定夺添加属性。

傻瓜式一键生成主子表,M 使用方案,主子表,创建表,IRIS,M,Cache

总结

  • 通过使用傻瓜方式创建主子表,可以方便开发避免之前在开头所描述的一些问题:
    • 例如编译不过去,
    • 创建得子表ID每次不重新自增。
    • 编译关系时逻辑搞不清,编译不通过。
    • 主子表数据Global,索引Global使用混乱。

以上是个人对数据生成实体类的一些理解,由于个人能力有限,欢迎大家提出意见,共同交流。文章来源地址https://www.toymoban.com/news/detail-537302.html

到了这里,关于傻瓜式一键生成主子表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源自助建站系统源码完整源码+搭建教程 傻瓜式一键建站系统源码

    一键傻瓜式自助建站系统源码,目前包含七百多套完整网站模板,全部都是响应式网站模板,傻瓜一键自助建站。开发组合PHP+mysql,功能强大。  一键自助建站系统源码带安装教程,源码下载:春哥技术博客获取。自助建站傻瓜式建站源码系统。

    2024年02月11日
    浏览(47)
  • AI国漫女神这样画!傻瓜式的云端SD(stable diffusion)部署教程 - 白嫖4090、无需代码、一键启动

    前段时间一直在用midjourney进行Ai绘画,但是发现Midjourney绘画的限制有点多很死板,很多图都不能画,懂得都懂。想使用Midjourney可以看这个:( 【推荐】Midjourney订阅教程 ) 然后就转到心仪已久的SD(stable diffsion),它的优点很明显 目前源代码在github开源,简称免费; 自定义

    2024年03月15日
    浏览(45)
  • 使用Pycharm一键将.ui文件生成.py文件配置教程、一键打开QTDesigner教程

    2df3621a-7ffd-4f18-9735-b86464b83a5b 前言 我痛恨所有将白嫖归为理所应当的猪🐖。 教程 打开pycharm之后,依次点击File-Settings-Tools-External Tools,进入如下界面: 1、配置快捷打开Qt Designer 点击+号,开始我们的配置,首先配置快捷打开Qt Designer软件的配置项,配置了之后,我们直接点击

    2024年01月16日
    浏览(35)
  • 【沐风老师】3DMAX宇宙生成器(一键生成星系)插件使用方法详解

    3DMAX宇宙生成器(一键生成星系)插件  3DMAX宇宙生成器(一键生成星系)插件,用于模拟星团及星系的运动。可以创建单个集合进行动画计算,也可以输入不同坐标,建立多个集合后统一进行动画计算。 【安装方法】 无需安装,使用时直接拖动插件文件到3dMax视口打开即可

    2024年02月08日
    浏览(36)
  • 傻瓜式安装stable diffusion图像生成软件

    目录 1、打开:https://colab.research.google.com/ 2、复制一下代码: 3、粘贴到下方,按运行按钮。  4、打开安装好的软件。上框复制以下代码: 5、下框复制以下代码: 6、如下图设置及操作: 按“+代码”按钮。 !pip install --upgrade fastapi==0.90.1!git clone https://github.com/AUTOMATIC1 - Pasteb

    2024年02月13日
    浏览(34)
  • 【使用Idea创建一键部署项目到Docker(保姆级教程)】

    Hello今天给大家带来如何一键部署项目到docker,什么事docker呢如果还有不会的建议先学习一下,这里仅整合资源, 参考原文 *这里注意如果你是新服务器,请先安装yum源 如果出现版本号说明成功了 在 ExecStart=/usr/bin/dockerd 追加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 重启 Docker 让配置

    2024年02月09日
    浏览(27)
  • 使用ChatGPT+Xmind一键生成思维导图,简直泰裤辣

    💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜 📝 个人主页:馆主阿牛🔥 🎉 支持我:点赞👍+收藏⭐️+留言📝 💬格言:迄今所有人生都大写着失败,但不妨碍我继续向前!🔥 思维导图是一种非常实用的工具,可以帮助我们整理思路、梳理知识、提高效率

    2024年02月02日
    浏览(31)
  • 【沐风老师】3dmax一键窗户生成器插件使用方法详解

    3dmax一键窗户生成器插件教程 3dMax一键窗户生成器是一个在3dMax中自动创建3D窗户模型的脚本。它有28种风格的窗户样式,可以在Archviz项目中灵活应用,同时为3D艺术家节省大量时间。 【适用版本】 适用3dMax 2018.2及更高版本 【安装方法】 1.解压缩包(注意:window文件夹和mse文

    2024年02月06日
    浏览(54)
  • 使用ChatGPT+MindShow一键生成PPT,以后再也不用担心制作PPT啦

    💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜 📝 个人主页:馆主阿牛🔥 🎉 支持我:点赞👍+收藏⭐️+留言📝 💬格言:迄今所有人生都大写着失败,但不妨碍我继续向前!🔥 我们经常会有制作ppt的需求,尤其大学里面的小组报告,什么班会团课之类的,

    2023年04月23日
    浏览(40)
  • IDEA2023.1.3创建Java Web项目并配置Tomcat(傻瓜式教程)

    本篇教程只针对IDEA2023.1.3版的Java Web项目创建以及配置Tomcat,不包含Tomcat下载教程 1.选择New Project,设置好项目名和JDK,点击Create  2.打开Project Structure 3.在Modules里点击加号选择Web,这样IDEA会帮我们创建好webapp文件夹和web.xml配置文件 4. 为项目创建一个web应用artifacts,IDEA在这里

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包