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

59网站一起做网店广州做网站的范本

59网站一起做网店广州,做网站的范本,装潢设计图片三室效果图,深圳市网站建设制作设计平台数据库管理185期 2024-05-08 数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储#xff08;20240508#xff09;1 上期示例说明2 两个参数2.1 NEST/UNNEST2.2 CHECK/NOCHECK 3 一数多用3.1 以用户维度输出订单信息3.2 以产品维度3.3 以产品种类维度 4 美化输出总结 数… 数据库管理185期 2024-05-08 数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储202405081 上期示例说明2 两个参数2.1 NEST/UNNEST2.2 CHECK/NOCHECK 3 一数多用3.1 以用户维度输出订单信息3.2 以产品维度3.3 以产品种类维度 4 美化输出总结 数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储20240508 作者胖头鱼的鱼缸尹海文 Oracle ACE Associate: DatabaseOracle与MySQL PostgreSQL ACE Partner 10年数据库行业经验现主要从事数据库服务工作 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP、认证技术专家、年度墨力之星ITPUB认证专家、专家百人团成员OCM讲师PolarDB开源社区技术顾问OceanBase观察团成员 圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号非著名社恐社交恐怖分子 公众号胖头鱼的鱼缸CSDN胖头鱼的鱼缸尹海文墨天轮胖头鱼的鱼缸ITPUByhw1809。 除授权转载并标明出处外均为“非法”抄袭 上一期通过一个简单的示例展示了JSON关系二元性视图视图创建了但是里面很多内容比如映射关系、数据关系维护等等都没有深入讲还有就是如何用一套关系表数据实现多个JSON关系二元性视图。 1 上期示例说明 这里展示一下表和视图之间的一些映射关系 箭头指定了每个表在视图中的位置其中最外层的是orders表根据订单展示需求持续向内嵌套各个主键应当包含唯一约束列都出现在了每一层表映射内容中这里列之间的关联关系以及如何输出数据是由主外键关系实现的这里创建视图使用的是GraphQL这种方式可以用直接匹配输出结果的方式编写语句也有以SQL定义下面是官方文档提供的一个范例 NEST/UNNEST这个放在下一节讲解增删改默认都是允许的JSON关系二元性视图是只读的不能增删改在使用GraphQL的模式下使用[no]insert, [no]update, [no]elete[no]checkSQL下则是WITH [NO]INSERT [NO]UPDATE [NO]DELETE 可以控制到每张表的级别。下面是官方文档提供的两个范例 对于上一期的范例就是只能增删改orders表涉及的字段。 对于数据修改特别是原来JSON存储的冗余数据由于底层数据存储不存在冗余现在可以仅在JSON关系二元性视图中更新一条数据即可修改所有相关JSON数据展示也可以修改底层关系表实现CHECK这个放在下一节讲解 2 两个参数 2.1 NEST/UNNEST 关于SQL中的unnest和nestGraphQL中为unnest, nest每个视图都定义了两个版本其中一个包含嵌套对象另一个使用关键字UNNEST定义将嵌套对象展开为直接包含其字段unset为指定嵌套对象中的属性何时应取消嵌套到父对象中。 这里直接通过下面的案例即可直观了解NEST/UNNEST的作用 --新创建两个简单点的JSON关系二元性视图分别使用unnest和不指定 CREATE JSON DUALITY VIEW orders_jdv_unnest AS orders {_id : order_id,ordertime : order_time,customers unnest{cid : customer_id,customer : customer_name} }; select json_serialize(t.data PRETTY) from orders_jdv_unnest t;CREATE JSON DUALITY VIEW orders_jdv_nest AS orders {_id : order_id,ordertime : order_time,customers{cid : customer_id,customer : customer_name} }; select json_serialize(t.data PRETTY) from orders_jdv_nest t;其实UNNEST就是将嵌套的JSON内容作为上级字段直接展开输出而NEST则是仍以嵌套JSON格式输出。 2.2 CHECK/NOCHECK [no]check/WITH [NO]CHECK包括/排除ETAG的校验字段的步骤 指定文档的部分内容在文档更新时是否检查state/version状态/版本。当更新文档时通常需要上次数据库操作文档后正在更新的文档的state/version不发生变化。 实现方法是使用无锁的乐观并发控制。默认情况下JSON关系二元性视图支持每个文档在ETAG字段即_metadata内的etag中记录一个文档状态签名。字段值被由文档内容和一些其他信息的哈希值每次操作文档时都会被自动更新。 文档的更新操作会根据时间更新etag的值并将该值与要更新的文档中之前存储的etag值由应用程序发送进行核对。如果两个值不一致则更新操作会失败。这种情况下应用程序会重新从数据库数据库获取最新的etag值然后再次尝试修改数据。 默认情况下文档的所有字段的操作都需要校验etag的值。将指定字段排除校验之外可以使用nocheck/WITH NOCHECK来实现。在表级指定NOCHECK可以让这张表涉及所有列排除在校验之外这种情况下在某些列上加上CHECK则可以将这些列的操作进行校验。也可以将NOCHECK指定到指定列以排除该列更新时校验etag值。 如果更新操作成功则会进行它定义的所有更改包括对未参与ETAG校验的字段的任何更改从而覆盖在此期间可能对该字段进行的任何更改。也就是说对于更新操作不属于ETAG校验的字段不会被忽略。 如果没有列被标记NOCHECK那么作为一个整体的JSON关系二元性视图的文档被操作时都会校验etag如果所有列都被标记NOCHECK则整个文档的操作都不会校验etag。这可以提高性能对于较大的文档这种提升更为显著。在以下情况下可能希望JSON关系二元性视图排除所有ETAG校验 应用程序有自己的并发控制方式因此不需要数据库ETAG校验应用程序是单线程的不可能同时对数据进行修改 3 一数多用 先增加一部分数据 --orders insert into orders values(12345682,to_timestamp(2024-05-07 09:42:21,yyyy-mm-dd hh24:mi:ss),123456); insert into orders values(12345683,to_timestamp(2024-05-07 09:45:25,yyyy-mm-dd hh24:mi:ss),234567); insert into orders values(12345684,to_timestamp(2024-05-07 09:48:01,yyyy-mm-dd hh24:mi:ss),456789); insert into orders values(12345685,to_timestamp(2024-05-07 09:51:44,yyyy-mm-dd hh24:mi:ss),345678);--order_details insert into order_details values(11,12345685,98765); insert into order_details values(12,12345685,87654); insert into order_details values(13,12345683,87654); insert into order_details values(14,12345684,65432); insert into order_details values(15,12345684,76543); insert into order_details values(16,12345682,98765); insert into order_details values(17,12345682,98765); insert into order_details values(18,12345682,87654); insert into order_details values(19,12345683,76543); insert into order_details values(20,12345684,65432);commit;现在尝试用一套关系表数据解决多套需求 3.1 以用户维度输出订单信息 CREATE JSON DUALITY VIEW customers_jdv AS customers {_id : customer_id,customer : customer_name,order : orders[ {oid : order_id,ordertime : order_time,details : order_details[ {subid : sub_id,products{pn : product_id,pname : product_name,price : price_number, product_type unnest{typeid : type_id,type : type_name}}} ]} ] };3.2 以产品维度 CREATE JSON DUALITY VIEW products_jdv AS products {_id : product_id,pname : product_name,price : price_number,product_type unnest{typeid : type_id,type : type_name},order_details[ {subid : sub_id,orders unnest{order : order_id,ordertime : order_time,customers unnest{cid : customer_id,customer : customer_name}}} ] };3.3 以产品种类维度 CREATE JSON DUALITY VIEW type_jdv AS product_type {_id : type_id,type : type_name,products[ {pn : product_id,pname : product_name,price : price_number,order_details[ {subid : sub_id,orders unnest{order : order_id,ordertime : order_time,customers unnest{cid : customer_id,customer : customer_name}}} ]} ] };4 美化输出 这里可以在SQL中使用json_serialize函数美化输出 select json_serialize(t.data PRETTY) from orders_jdv t;也可以使用最新的SQLDeveloper 23.1.1来试试 总结 本期展示了JSON关系二元性视图更详细的内容如何用一套数据实现多个JSON模型需求以及在SQL层面美化JSON输出。 更多的关于JSON关系二元性视图其他操作将放在下一期。 老规矩知道写了些啥。
http://www.dnsts.com.cn/news/158522.html

相关文章:

  • 经典网站设计软件技术一般在哪上班
  • 网站收缩引擎入口画册设计理念和设计思路
  • 网站托管服务使用于那种类型的网站个人网站主页html5
  • 德州网站建设推广价格个人网站备案 名称
  • 做网站必须有云虚拟主机国内外知名市场调研公司
  • 宝安新闻最新消息今天天津seo培训机构
  • 东莞网站建设服务商wordpress wp config
  • 下载中国建设银行官网站长沙优化网站建设
  • 东营建设工程信息网站做的网站怎样更新
  • 静安制作企业网站免费空间申请2021
  • 湖北自适应网站建设价格社交电商app开发
  • 佛山专业的网站建设国色天香站长工具
  • 怎么修改网站的源代码唯品会是哪做的网站
  • 电子商务网站建设训练总结网站建设的主要功能有哪些
  • 建一个展示网站下班多少钱邹平县建设局网站
  • 做二手钢结构网站有哪些淘宝电商运营基础知识
  • 微信网站开发登录做网站找哪家好
  • 用美图秀秀做网站图片企业网站系统有哪些
  • 怎么提高网站seo优化关键字排名wordpress一键倒入微信
  • 正规营销型网站建设公司住房和城乡建设部官网证件查询
  • 给女友做网站网络营销经典案例
  • 网站系统开发报价单wordpress 后台 空白
  • 如何进行网站的推广苏州高端网站定制
  • 网站建设类论文格式网站流量站怎么做
  • 找个网站页面设计的对称方法包括哪几种形式
  • 怎样网站不用备案网站开发费用预算
  • 福州网站设计哪家好网站赏析案例
  • 苏州企业建设网站公司免费发布黄页广告网站
  • 完爆网站开发经典实例国家建设工程信息网站
  • 在线学习网站建设php app网站建设