当前位置: 首页 > news >正文

养猪网站建设规划书/软件推广平台

养猪网站建设规划书,软件推广平台,目前流行的app网站开发模式,阳谷聊城做网站在数据库应用开发中,我们经常需要面对复杂的SQL式计算,多级关联就是其中一种。SQL的join语句比较抽象,只适合表达简单的关联关系,一旦关联的层级较多,相应的代码就会变得非常复杂。而SPL则可以利用对象引用来表达关联关…

在数据库应用开发中,我们经常需要面对复杂的SQL式计算,多级关联就是其中一种。SQL的join语句比较抽象,只适合表达简单的关联关系,一旦关联的层级较多,相应的代码就会变得非常复杂。而SPL则可以利用对象引用来表达关联关系,从而使代码更加直观,下面就用一个例子来加以说明。

表channel存储着某网站所有的频道及其上级频道的对应关系,分别用ID和PARENT字段来表示,最多四级,其中root代表网站本身(即根节点)。表中部分数据如下:

0e8229efa4a3b5c744559d3d18e28fa7.png

现在想要根据参数输入的ID,分层列出该频道所有下级的名称,同一层的下级之间用逗号分隔。假设参数arg1的值是p1,我们期望的结果如下图所示:

da7199316c34020fef9ac5f658b095ab.png

SPL代码如下:

9a7bdfbb7dac0b6422c066bdfbdd73c0.png

A1:查询表channel,部分结果如下图所示:

0f3cb337771e26bba1cbd389b880b6ba.png

B1:>A1.switch(PARENT,A1:ID),使用函数switch将表中PARENT字段替换成对应的记录引用,如下图所示:

36c41949647c5e03aec2bff22a93e1d0.png

切换后,可以直接用PARENT.ID来表示上级(父)频道,而PARENT. PARENT. PARENT.ID则可以直接表示上三级(曾祖父)频道。虽然在SQL中也可以用join来表示这种自连接,但层级多了后显然容易产生混乱。

A2:=create(ID,LEVEL,SUB),建立一个空序表,用来存储最终的计算结果。

A3:=A1.select(PARENT.ID==arg1),从表中查询出上级(父)频道等于参数arg1的记录,即:arg1的下一级(子)频道。计算结果如下:

c899bf356850920d254cae1c672740a7.png

B3:>A2.insert(0,arg1,1,A3.(NAME).string()),在A2中追加一条记录,第一个字段值是arg1;第二个字段值为1,表示第一级子频道;第三个字段为表达式A3.(NAME).string(),表示取出A3中的列NAME,拼成逗号分隔的字符串。计算结果如下:

145fa3f8540b545997f6f2772a2dbbf7.png

A4:=A1.select(PARENT.PARENT.ID==arg1),这句代码和A3类似,表示从表中查询出arg1的下两级(孙子)频道。结果如下:

b8d574e9279a17965dd9c4746fe9125e.png

A5和A4类似,表示取出arg1的下三级(曾孙)频道。用类似的办法可以轻松取出下N级的频道。

B4、B5和B3类似,都是向A2中追加新记录,只是level字段改为2和3。执行完B5后,A2就是本次运算的最终结果:

5268cb56d30afa902118b933b8585c3e.png

刚才参数arg1的值为p1,如果输入c12,则计算结果如下:

12bd40175472beed4c5c6f4a2bc96188.png

有时我们希望看到更清晰的数据,比如将某个频道的所有下级频道一条条列出,并标出层级关系。如下图所示:

a16824b3706ef7acbe7bc151b5732902.png

要想实现这种算法,可以使用下面的代码:

c2e600974a35bac298bf4c6e01c03cc0.png

红色字体为变动后的代码,其中B3中的代码是=A2.insert(0,arg1,1,A3),这表示直接将A3的记录存储在A2中,假设参数arg1的值为p1,则计算结果如下:

f5db7fb6edc4b38ebc9ec4c9e483b2d8.png

点开SUB字段,可以看到详细的记录:

599964536046df134bd36d37838f31c8.png

可以看到,SPL的字段值是泛型的,可以存储记录组,或者单条记录。而函数switch的本质就是将外键切换为主表中对应的记录。

执行完B5后,A2中的结果如下:

51a45fa2e35dcd31ec4ab48a441f6259.png

A6:=A2.(~.SUB.new(A2.ID,A2.LEVEL,ID:SUBID,NAME)),用来将A2中ID和LEVEL拼到SUB字段里的每条记录中。其中A2.()表示对A2进行计算,计算中可以使用“~”来表示A2中的每条记录,~.SUB则表示每条记录的SUB字段(记录组)。函数new用来生成新的序表,即:A2中的ID字段、LEVEL字段,SUB中的ID字段、NAME字段。计算完成后,A6的值如下:

672e281a887748ca58d183f1d7cdb683.png

A7=A6.union(),这句代码用来将A7的各组记录拼在一起,形成最终计算结果:

b9e4a319c4a711e1e127625d1436f992.png

有时我们需要直接列出每个频道的所有下级频道。要想实现这种算法,可以使用SPL的for语句,代码如下:

d297af7aef0bcc37f7a733c95fae44ca.png

A3中的代码for A1.(ID)表示循环A1的ID字段,每次取出一条,可以用循环语句所在的单元格A3来表示循环变量。循环的作用范围可以用缩进来表示,例子中的循环范围就是B 3:C5。最终的计算结果在A7中,部分数据如下:

e31835bff6ae1e83982fd3957f5e1f41.png

从这些例子可以看出,使用SPL简化多级关联问题时,思路直观明了,代码简洁易懂,层级关系清晰可见。与SQL相比,这样的SPL代码可以大幅度降低开发成本,并极大地简化后期优化和维护工作。

http://www.lbrq.cn/news/1104463.html

相关文章:

  • 玉环 企业网站建设/企业网络营销
  • 基础展示营销型型网站/网站分享
  • 网站制作素材/长春seo公司哪家好
  • 淄博专业网站建设哪家专业/重庆做优化的网络公司
  • 百度.com的网站制作/北京今日重大新闻
  • 网站数据每隔几秒切换怎么做的/杭州网站搜索排名
  • 河南汉狮做网站的公司/太原关键词优化报价
  • wordpress代码框/seo排名优化方法
  • 南通高端网站建设机构/怎么制作属于自己的网址
  • 上海美容论坛网站建设/黑科技引流工具
  • 网站建设名词解释与简答题/宁波正规优化seo价格
  • 热门网站建设加盟平台/模板网站建设开发
  • 信誉好的龙岗网站制作/seo公司是什么
  • wordpress插件 2017/淘宝怎么优化关键词步骤
  • 江苏省住房和城乡建设部网站/青岛seo网站排名
  • 竹业网站建设/网络推广工作
  • 多语言网站是怎么做的/建网站用什么软件
  • 深圳网站建设公司 概况/中国国家培训网是真的吗
  • 域名网站建设教程/网站优化培训
  • 模板网站怎么做才美观/设计网站排行榜前十名
  • thinkphp租房网站开发/怎样做一个产品营销方案
  • 任家房网站建设/windows10优化软件
  • 冷水江网站定制/seo排名技巧
  • 开发网站多少钱/大众网疫情最新消息
  • 中韩双语网站制作价格/揭阳seo快速排名
  • 成都 网站建设/网络上如何推广网站
  • 云服务器网站解析/seo搜索排名优化是什么意思
  • 北京网站设计公司飞沐/网络营销策划案
  • 初创企业的建站流程/门户网站推广方案
  • drupal做的网站/seo网站推广方案策划书
  • Vue3.6 无虚拟DOM模式
  • Elasticsearch 简化指南:GCP Google Compute Engine
  • 20250720-6-Kubernetes 调度-nodeName字段,DaemonS_笔记
  • Python爬虫实战:研究psd-tools库相关技术
  • Spring AI 项目实战(十九):Spring Boot + AI + Vue3 + OSS + DashScope 构建多模态视觉理解平台(附完整源码)
  • ChatGPT Agent深度解析:告别单纯问答,一个指令搞定复杂任务?