[图解]分析模式高阶+课程讲解03物品模式

1
00:00:00,280 --> 00:00:03,440
下一个要探讨的模式是物品模式

2
00:00:04,310 --> 00:00:08,300
说是物品模式,实际上更多的说物品规格

3
00:00:09,210 --> 00:00:12,560
首先,我们要区分一下物品和物品规格的定义

4
00:00:14,440 --> 00:00:18,770
你看右边这个

5
00:00:19,880 --> 00:00:22,230
同样是这么多瓶可乐

6
00:00:23,240 --> 00:00:25,180
这是一个物品还是多个物品

7
00:00:26,230 --> 00:00:27,620
如果我们认为是一个

8
00:00:28,120 --> 00:00:29,820
实际上我们说的就是规格

9
00:00:31,090 --> 00:00:31,950
如果是多个

10
00:00:32,790 --> 00:00:33,910
它们是可以区分的

11
00:00:34,560 --> 00:00:35,900
或者说有必要区分的

12
00:00:37,280 --> 00:00:38,590
说的实际上就是物品

13
00:00:44,040 --> 00:00:47,680
比如说,像我们单位里面有很多台电脑

14
00:00:47,690 --> 00:00:50,320
当时采购的时候是批量采购回来的

15
00:00:50,840 --> 00:00:53,210
采购100台一模一样的电脑

16
00:00:53,980 --> 00:00:56,000
当然说一模一样,实际上也不是一模一样

17
00:00:56,010 --> 00:01:00,090
因为这100台里面,出厂的时候

18
00:01:00,260 --> 00:01:03,270
编号,每个产品上面

19
00:01:03,280 --> 00:01:05,990
应该有一个流水号

20
00:01:06,120 --> 00:01:07,550
应该也是不一样的

21
00:01:08,060 --> 00:01:10,210
因为生产也是有管控的

22
00:01:10,970 --> 00:01:12,850
但是我们买的时候是不管这个的

23
00:01:13,660 --> 00:01:15,620
商场也不管这个

24
00:01:15,630 --> 00:01:17,890
他卖给我的实际上是同一个商品

25
00:01:18,280 --> 00:01:19,310
卖了100件

26
00:01:20,120 --> 00:01:21,600
那么我们拿回单位以后

27
00:01:22,960 --> 00:01:24,860
我们就给它编上我们自己的号

28
00:01:25,800 --> 00:01:29,830
然后分给不同的员工来使用

29
00:01:31,740 --> 00:01:36,590
这时候每个电脑它就可以互相区分了

30
00:01:37,430 --> 00:01:40,590
很可能张三的电脑坏掉了

31
00:01:41,440 --> 00:01:43,920
拿去修理,李四的还是正常的

32
00:01:44,530 --> 00:01:44,850


33
00:01:46,570 --> 00:01:48,000
就可以有这样的区别

34
00:01:48,780 --> 00:01:55,920
但是针对同样规格的物品的单个单个

35
00:01:56,370 --> 00:01:57,720
这个不是我们

36
00:01:57,730 --> 00:01:59,600
这个模式的重点

37
00:02:00,250 --> 00:02:01,330
我们模式的重点是哪一个

38
00:02:01,340 --> 00:02:04,630
就是商场里面

39
00:02:04,880 --> 00:02:06,460
或者说物品规格

40
00:02:06,470 --> 00:02:09,150
众多的时候的

41
00:02:09,160 --> 00:02:10,310
一个管理的问题

42
00:02:12,990 --> 00:02:15,120
商场、药店,都可以

43
00:02:15,290 --> 00:02:16,400
包括公文

44
00:02:16,410 --> 00:02:18,680
包括,都可以

45
00:02:18,690 --> 00:02:25,890
很多东西,分类繁多

46
00:02:25,900 --> 00:02:28,170
而且不断变化的东西,都可以

47
00:02:29,100 --> 00:02:30,900
我们看,举例看这个

48
00:02:31,770 --> 00:02:34,960
商品分为食品、服装、电器

49
00:02:36,240 --> 00:02:38,280
电器分为洗衣机、电器、空调

50
00:02:38,290 --> 00:02:40,400
电视机分为液晶电视、等离子电视

51
00:02:40,800 --> 00:02:44,720
我们来看这个,它们的分类有很多层

52
00:02:44,930 --> 00:02:45,800
第二个,还可以不断

53
00:02:45,810 --> 00:02:49,350
往下面延伸,或者往横的加

54
00:02:49,850 --> 00:02:50,330
这是第一点

55
00:02:50,340 --> 00:02:52,290
第二点,就是特性各自不同

56
00:02:53,710 --> 00:02:56,560
食品的这里,有原料,有保质期

57
00:02:57,210 --> 00:02:58,600
电器就没有

58
00:02:58,920 --> 00:02:59,990
但电器有功率

59
00:03:01,050 --> 00:03:03,650
这是所有电器我们都要关注的

60
00:03:04,650 --> 00:03:08,830
但是,电视机又有自己的,屏幕尺寸

61
00:03:09,160 --> 00:03:10,590
分辨率,3D支持

62
00:03:10,720 --> 00:03:13,740
这些是空调洗衣机没有的

63
00:03:14,970 --> 00:03:17,920
然后电视里面又分液晶、等离子体电视

64
00:03:17,930 --> 00:03:20,850
而液晶电视里面又多一个背光方式

65
00:03:23,050 --> 00:03:24,490
这是液晶电视特有的

66
00:03:25,440 --> 00:03:26,620
别的电视可能就没有

67
00:03:29,630 --> 00:03:33,080
所以,你要说买一个液晶电视的话

68
00:03:33,090 --> 00:03:38,420
所有的,这个这个,上面还有的话

69
00:03:39,360 --> 00:03:41,920
上面肯定还有条码什么之类的

70
00:03:41,930 --> 00:03:43,440
所有商品都有

71
00:03:43,810 --> 00:03:44,880
这样一串上去

72
00:03:45,010 --> 00:03:47,980
都是液晶电视的特征

73
00:03:48,270 --> 00:03:50,290
都要关注的特征

74
00:03:54,680 --> 00:03:56,470
这样的一个结构

75
00:03:58,210 --> 00:04:02,450
当然,通过泛化关系来建模是可以的

76
00:04:02,660 --> 00:04:04,880
但是泛化建模的话

77
00:04:06,190 --> 00:04:10,590
如果说它行为上并没有什么特别的变化

78
00:04:11,400 --> 00:04:13,310
主要还是数据上的变化的话

79
00:04:13,760 --> 00:04:15,350
我们就可以把它转换一个

80
00:04:15,980 --> 00:04:17,270
那也就是我们前面讲的

81
00:04:20,030 --> 00:04:23,980
把泛化结构变成类类型的

82
00:04:23,990 --> 00:04:26,280
递归关联或自反关联

83
00:04:28,230 --> 00:04:31,500
那么这个类类型就是物品类别或商品类别

84
00:04:35,190 --> 00:04:38,000
然后自反关联,也就是说,这个时候

85
00:04:38,010 --> 00:04:42,330
就把这个类的这种树状结构

86
00:04:42,340 --> 00:04:44,410
就变成了

87
00:04:45,240 --> 00:04:48,920
类别对象的树状结构,都是类别对象

88
00:04:49,580 --> 00:04:51,260
实际上就变成自反关联了

89
00:04:55,040 --> 00:04:57,590
然后,这个特征怎么办呢

90
00:04:57,990 --> 00:05:00,620
那就是变成这4个类了

91
00:05:02,430 --> 00:05:05,200
物品类别,定义了一些物品类别特征

92
00:05:05,910 --> 00:05:07,440
然后这边放它的名称

93
00:05:08,440 --> 00:05:12,110
然后,物品定义了物品特征

94
00:05:12,120 --> 00:05:13,190
这边放它的值

95
00:05:14,080 --> 00:05:16,590
然后,物品特征关联到类别特征

96
00:05:16,600 --> 00:05:18,070
物品关联到物品类别

97
00:05:20,880 --> 00:05:28,050
这样来,我们来看这个类图怎么实现

98
00:05:32,160 --> 00:05:35,560
首先,这个是1对多的自反关联

99
00:05:37,290 --> 00:05:41,270
1对多的话,我们就不用添加一个新的表了

100
00:05:41,440 --> 00:05:42,550
直接在物品类别这里

101
00:05:42,560 --> 00:05:45,810
添加一个上级类别的ID就可以

102
00:05:46,930 --> 00:05:47,770
然后这个1对多

103
00:05:47,780 --> 00:05:51,380
就是这边1,这边多,物品类别特征

104
00:05:51,390 --> 00:05:53,020
这边有物品类别ID

105
00:05:54,140 --> 00:05:55,380
然后物品是多

106
00:05:55,390 --> 00:05:58,520
这是1,就是物品这边有物品类别ID

107
00:05:59,250 --> 00:06:03,030
然后这个多,这个1,那就是物品特征这边有物品ID

108
00:06:03,040 --> 00:06:08,410
还有一个什么,物品类别特征ID,映射过来

109
00:06:09,670 --> 00:06:10,380
就是这样

110
00:06:12,670 --> 00:06:14,100
这有上级类别ID

111
00:06:15,140 --> 00:06:18,180
然后物品类别ID

112
00:06:19,080 --> 00:06:20,750
物品ID,特征ID

113
00:06:21,250 --> 00:06:26,050
这两个,这边有类别ID作为外键

114
00:06:27,660 --> 00:06:28,590
这是数据库的映射

115
00:06:34,400 --> 00:06:36,590
我们来看,怎样来填数据

116
00:06:38,580 --> 00:06:40,720
这是刚才泛化的类图

117
00:06:40,810 --> 00:06:44,400
我们给它标个123456789

118
00:06:44,410 --> 00:06:46,630
这是9个类别

119
00:06:46,800 --> 00:06:50,810
物品类别我们就按照9个来填

120
00:06:51,570 --> 00:06:53,220
Id,123456789

121
00:06:53,940 --> 00:06:56,930
然后,你看商品这个是顶级的

122
00:06:57,260 --> 00:06:58,210
上级类别没有

123
00:06:58,630 --> 00:07:01,790
然后234,就是食品服装电器

124
00:07:02,150 --> 00:07:04,540
上级类别是1

125
00:07:05,370 --> 00:07:08,560
567,上级类别是4,电器

126
00:07:08,830 --> 00:07:14,260
89,上级类别是6,这是物品类别

127
00:07:16,670 --> 00:07:20,400
同样,我们来看,物品类别特征的数据

128
00:07:20,410 --> 00:07:26,250
你看,2,其他的没列出来的,我们就不管了

129
00:07:26,260 --> 00:07:29,030
我们就看列出来的,2有3个特征

130
00:07:29,300 --> 00:07:30,480
原料、保质期

131
00:07:32,380 --> 00:07:33,350
贮藏条件

132
00:07:34,090 --> 00:07:36,880
原料、保质期、贮藏条件

133
00:07:36,890 --> 00:07:37,590
物品类别ID是2

134
00:07:38,210 --> 00:07:40,160
同样的,电源功率是4

135
00:07:40,520 --> 00:07:43,960
屏幕尺寸、分辨率、3D支持,是6

136
00:07:43,970 --> 00:07:47,410
背光方式,8

137
00:07:47,540 --> 00:07:49,210
就这样照着填下来就行了

138
00:07:49,220 --> 00:07:50,560


139
00:07:53,200 --> 00:07:54,150
刚才我们说了

140
00:07:56,260 --> 00:07:59,210
当我们要买液晶电视的时候

141
00:08:00,020 --> 00:08:02,470
假设我们说,我要买一台液晶电视

142
00:08:03,620 --> 00:08:06,530
那么我们要首先第一个要解决的问题是

143
00:08:06,540 --> 00:08:08,450
如果你要作为一台液晶电视

144
00:08:08,460 --> 00:08:09,770
比如说,我这里有一个产品

145
00:08:10,240 --> 00:08:12,590
它归属于液晶电视这个类别

146
00:08:13,230 --> 00:08:15,090
那么这个产品,或者这个物品

147
00:08:15,450 --> 00:08:17,740
应该要标注哪些特征

148
00:08:18,750 --> 00:08:20,440
我们的第一个计算

149
00:08:20,450 --> 00:08:24,020
就是给你一个物品类别

150
00:08:24,030 --> 00:08:28,060
你告诉我这个类别应有的特征

151
00:08:29,510 --> 00:08:31,720
显然这个特征不只是它自己了

152
00:08:31,730 --> 00:08:35,080
比如说,给你物品类别液晶电视

153
00:08:37,220 --> 00:08:38,840
特征不只是包括它自己

154
00:08:38,850 --> 00:08:40,670
不能这个就完了

155
00:08:40,680 --> 00:08:43,270
你还有上级类别的特征

156
00:08:44,420 --> 00:08:48,290
上级类别的上级类别,再往上,一直到没有

157
00:08:48,760 --> 00:08:49,860
不能再往上为止

158
00:08:49,990 --> 00:08:51,580
这一串上去这样的

159
00:08:52,470 --> 00:08:56,900
所以,不是说select一下就完了

160
00:08:57,310 --> 00:08:59,970
那么就有一个什么,递归的运算

161
00:09:00,530 --> 00:09:03,390
如果说我们用SQL语句

162
00:09:03,520 --> 00:09:05,430
我们可以把它写成一个存储过程

163
00:09:06,360 --> 00:09:09,610
这里,计算物品类别应有的特征

164
00:09:09,960 --> 00:09:11,500
参数是一个物品类别ID

165
00:09:13,610 --> 00:09:18,920
然后,你看,我们首先定义一个表

166
00:09:19,210 --> 00:09:21,740
内部的表,类似于临时表

167
00:09:21,990 --> 00:09:24,900
这个表,计算完了就销毁了

168
00:09:24,910 --> 00:09:27,980
不在数据库里面持久存储的

169
00:09:28,980 --> 00:09:30,770
那么这个表就是类别闭包

170
00:09:31,740 --> 00:09:32,580


171
00:09:32,590 --> 00:09:38,790
就是把类别往上级的上级

172
00:09:38,880 --> 00:09:40,410
一直一直找上级

173
00:09:40,620 --> 00:09:41,770
所有的类别找出来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/759867.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】C++ 网店销售库存管理系统(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

抖音直播自动点赞脚本:让点赞变得简单

抖音直播自动点赞脚本:让点赞变得简单 简介 点赞是社交媒体上表达喜爱的一种方式,尤其在抖音这样的平台上,点赞不仅能够增加主播的人气,还能鼓励他们创作更多优质内容。然而,手动点赞往往既耗时又费力。为了解决这个…

算法与数据结构面试宝典——常见的数据结构都有哪些?详细示例(C#,C++)

文章目录 一、逻辑结构:线性与非线性线性数据结构非线性数据结构访问方式 二、数组(Array)三、链表(LinkedList)四、栈(Stack)五、队列(Queue)六、树(Tree&am…

Android高级面试_6_性能优化

Android 高级面试-7:网络相关的三方库和网络协议等 1、网络框架 问题:HttpUrlConnection, HttpClient, Volley 和 OkHttp 的区别? HttpUrlConnection 的基本使用方式如下: URL url new URL("http://www.baidu.com")…

pytest测试框架pytest-random-order插件随机执行用例顺序

Pytest提供了丰富的插件来扩展其功能,本章介绍下pytest-random-order插件,随机设置pytest测试用例的运行顺序,并对随机性进行一些控制。 官方文档: https://pytest-cov.readthedocs.io/en/latest/index.html 适配版本说明&#x…

AI智能客服项目拆解(1) 产品大纲

本文作为拆解AI智能客服项目的首篇,以介绍产品大纲为主。后续以某AI智能客服产品为例,拆解相关技术细节。 AI智能客服是一种基于人工智能技术的客户服务解决方案,旨在提高客户满意度和优化企业运营。利用人工智能和自然语言处理技术&#xff…

如何为数据库中的位图添加动态水印

许多数据库存储了以blob或文件形式保存的位图,其中包括照片、文档扫描、医学图像等。当这些位图被各种数据库客户端和应用程序检索时,为了日后的识别和追踪,有时需要在检索时为它们添加唯一的水印。在某些情况下,人们甚至希望这些…

数字图像处理之【高斯金字塔】与【拉普拉斯金字塔】

数字图像处理之【高斯金字塔】与【拉普拉斯金字塔】 1.1 什么是高斯金字塔? 高斯金字塔(Gaussian Pyramid)是一种多分辨率图像表示方法,用于图像处理和计算机视觉领域。它通过对原始图像进行一系列的高斯平滑和下采样操作&#x…

istitle()方法——判断首字母是否大写其他字母小写

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 istitle()方法用于判断字符串中所有的单词首字母是否为大写而其他字母为小写。istitle()方法的语法格式如下: str.istitle() …

Java并发编程基础知识点

目录 Java并发编程基础知识点1、线程,进程概念及二者的关系进程相关概念线程相关概念进程与线程的关系补充小知识点: 2、线程的状态Java线程的状态:Java线程不同状态之间的切换图示 3、Java程序中如何创建线程?①、继承Thread类②…

【python】python知名品牌调查问卷数据分析可视化(源码+调查数据表)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

某度,网盘免费加速,复活!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 有小伙伴反馈之前如下夸克网盘脚本的加速方法失效,小武今天测试,依旧正常使用! 百度/迅雷/夸克,网盘免费加速,已破&#xf…

Vite: 高阶特性 Pure ESM

概述 ESM 已经逐步得到各大浏览器厂商以及 Node.js 的原生支持,正在成为主流前端模块化方案。 而 Vite 本身就是借助浏览器原生的 ESM 解析能力( type“module” )实现了开发阶段的 no-bundle ,即不用打包也可以构建 Web 应用。不过我们对于原生 ESM 的…

线性表与顺序存储结构(下)

前言 接上文(线性表与顺序存储结构(上))。 这些顺序存储结构的方法在顺序表上下卷中已经提到过,但是有些许不同,可以为理解顺序表提供更丰富的视角。(不过最主要的区别在于顺序表上下卷中的顺…

FairGuard游戏加固无缝兼容 Android 15 预览版

2024年6月25日,谷歌发布了 Android 15 Beta 3 ,作为Android 15 “平台稳定性”的里程碑版本,谷歌建议所有应用、游戏、SDK、库和游戏引擎开发者都将“平台稳定性”里程碑版本作为规划最终兼容性测试和公开发布的目标。 安卓开发者博客提供的版…

Hadoop3:MapReduce中的ETL(数据清洗)

一、概念说明 “ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。ETL一词较常用在数据仓库&#…

算法09 日期相关模拟算法【C++实现】

这是《C算法宝典》算法篇的第09节文章啦~ 如果你之前没有太多C基础,请点击👉专栏:C语法入门,如果你C语法基础已经炉火纯青,则可以进阶算法👉专栏:算法知识和数据结构👉专栏&#xff…

模型预测控制:线性MPC

模型预测控制:线性MPC 模型预测控制(Model Predictive Control, MPC)是一种广泛应用于工业过程控制和自动驾驶等领域的先进控制技术。MPC通过在线解决优化问题来计算控制输入,从而实现系统的最优控制。本文将介绍线性MPC的系统模…

架构师篇-8、运用事件风暴进行业务领域建

如何成为优秀架构师? 需要有一定的技术积累,但是核心是懂业务。 具备一定的方法,并且有很强的业务理解能力。 技术架构师:形成技术方案,做的更多的是底层的平台,提供工具。 业务架构师:解决方…

Cyber Weekly #13

赛博新闻 1、谷歌发布最强开源小模型Gemma-2 本周五(6月28日)凌晨,谷歌发布最强开源小模型Gemma-2,分别为9B(90亿)和27B(270亿)参数规模,其中9B 模型在多项基准测试中均…