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

news2025/1/20 5:51:10

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.coloradmin.cn/o/1880788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

205.Mit6.S081-实验二 system calls

Lab2:system calls 在上一个实验室中,您使用系统调用编写了一些实用程序。在本实验室中,您将向xv6添加一些新的系统调用,这将帮助您了解它们是如何工作的,并使您了解xv6内核的一些内部结构。您将在以后的实验室中添加更多系统调用…

人工智能期末复习笔记(更新中)

分类问题 分类:根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类 垃圾分类、图像分类 怎么解决分类问题 分类和回归的区别 1. 逻辑回归分类 用于解决分类问题的一种模型。根据数据特征或属性,计算其归属于某一类别 的概率P,…

[Cloud Networking] OSPF

OSPF 开放式最短路径优先(Open Shortest Path First)是一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码和汇总、层次区域划分等优点。 1 OSPF Area 为了适应大型网络&#xff0…

C程序设计谭浩强第五版

程序习题 第一章1、第5题2、第6题 第三章1、第2题2、第2题3、第3题4、第4题Tips 第一章 1、第5题 编写一个C程序,运行时输出以下图形: #include <stdio.h> int main() {for (int i 0; i < 4; i) // 输出4行循环控制{for (int j 0; j < i; j) //第几行就输出几…

leetcode-19-回溯-组合问题(剪枝、去重)

引自代码随想录 一、[77]组合 给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]] 1、大致逻辑 k为树的深度&#xff0c;到叶子节点的路径即为一个结果 开始索引保证不…

一、Redis简介

一、Redis介绍与一般应用 1.1 基本了解 Redis全称Remote Dictionary Server(远程字典服务)&#xff0c; 是一个开源的高性能键值存储系统&#xff0c;通常用作数据库、缓存和消息代理。使用ANSI C语言编写遵守BSD协议&#xff0c;是一个高性能的Key-Value数据库提供了丰富的数…

VMware中的三种虚拟网络模式

虚拟机网络模式 1 主机网络环境2 VMware中的三种虚拟网络模式2.1 桥接模式2.2 NAT模式2.3 仅主机模式 3 网络模式选择及配置NAT模式3.1 VMware虚拟网络配置3.2 虚拟机选择网络模式3.3 Windows主机网络配置 4 配置静态IP 虚拟机联网方式为桥接模式&#xff0c;这种模式下&#x…

5.6 0-1背包问题

#include<iostream> #include<string> #include<stdlib.h> #include<bits/stdc.h> using namespace std;int c;//背包容纳的重量 int n;//物品数量 int cw;//当前重量 int cv;//当前价值 int bestv;//当前最优价值 int x[100]; int bestx[100]; struct…

Python 算法交易实验75 QTV200后续想法梳理

说明 在第一步获取数据源&#xff0c;然后进入Mongo(第一个数据节点)开始&#xff0c;QTV200的数据流体系就开始动了。后续用多少时间完成不太好确定&#xff0c;短则数周&#xff0c;长则数月。毕竟有过第一版实验的基础&#xff0c;应该还是可以做到的。 下面就是天马行空&…

【TB作品】玩具电子琴,ATMEGA128单片机,Proteus仿真

题目 7 &#xff1a;玩具电子琴 基于单片机设计一能够发出中音八个音阶的音乐信号的电子琴&#xff0c;能够实现弹奏和音符显示功 能。 具有 8 个音阶按键&#xff0c;每按下一个按键时&#xff0c;所对应的 LED 点亮&#xff0c;音符进行显示。 具体要求如下&#xff1a; &…

zabbix server client 安装配置

Zabbix Server 采用源码包部署&#xff0c;数据库采用 MySQL8.0 版本&#xff0c;zabbix-web 使用 nginxphp 来实现。具体信息如下&#xff1a; 软件名 版本 安装方式 Zabbix Server 6.0.3 源码安装 Zabbix Agent 6.0.3 源码安装 MySQL 8.0.28 yum安装 Nginx 1.20…

淀山湖之行随笔

我们仰望清新&#xff0c;但又不得不被世俗所伴。 近日上海开始进入梅雨季节&#xff0c;每天大大小小的雨水不断&#xff0c;整个环境也格外的潮湿&#xff0c;不过已经逐渐习惯这种气候&#xff0c;所谓的见怪不怪。 今日是周日&#xff0c;思绪好久&#xff0c;准备去淀山湖…

贪心问题(POJ1700/1017/1065)(C++)

一、贪心问题 贪心算法 贪心算法&#xff08;greedy algorithm&#xff09;&#xff0c;是用计算机来模拟一个「贪心」的人做出决策的过程。这个人十分贪婪&#xff0c;每一步行动总是按某种指标选取最优的操作。而且他目光短浅&#xff0c;总是只看眼前&#xff0c;并不考虑…

【mysql死锁】示例 和讨论 “SHOW ENGINE INNODB STATUS“

文章目录 mysql 死锁死锁演示表结构如下 死锁查询mysql 详情命令行 SHOW ENGINE INNODB STATUS 如果 两个事务都是按照先更新1 再更新2的顺序去做更新 会发生死锁么&#xff1f;验证一下所以 如果顺序是一致的 不会产生死锁 只会进行等待 防止mysql 死锁的方式优化sql 自行顺序…

(2024,DDPM,DDIM,流匹配,SDE,ODE)扩散:基础教程

Step-by-Step Diffusion: An Elementary Tutorial 公和众与号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0 前言 1 扩散的基础知识 1.1 高斯扩散 1.2 抽象中的扩散 1.3 离散化 2 随机采样…

React 打包时如何关闭源代码混淆

React 开发中&#xff0c;使用 npm build 命令进行生产代码打包&#xff0c;为了压缩代码并尽量保证代码的安全性&#xff0c;React 打包时会代码进行压缩和混淆&#xff0c;但是有时我们需要 debug 生产环境的源代码&#xff0c;例如当我们调试 SSR 的项目时&#xff0c;需要禁…

业务模型扩展字段存储

构建业务模型时&#xff0c;通常模型会设置扩展信息&#xff0c;存储上一般使用JSON格式存储到db中。JSON虽然有较好的扩展性&#xff0c;但并没有结构化存储的类型和非空等约束&#xff0c;且强依赖代码中写入/读取时进行序列化/反序列化操作&#xff0c; 当扩展信息结构简单且…

SpringMVC(1)——入门程序+流程分析

MVC都是哪三层&#xff1f;在Spring里面分别对应什么&#xff1f;SpringMVC的架构是什么&#xff1f; 我们使用Spring开发JavaWeb项目&#xff0c;一般都是BS架构&#xff0c;也就是Browser&#xff08;浏览器&#xff09;-Server&#xff08;服务器&#xff09;架构 这种架构…

JVM(12):虚拟机性能分析和故障解决工具之JConsole

1 JConsole作用 查看Java应用程序的运行概况&#xff0c;监视垃圾收集器管理的虚拟机内存(堆和元空间)的变化趋势&#xff0c;以及监控程序内的线程。 2 使用说明 代码如下&#xff1a; package com.example.demo;import java.io.IOException; import java.util.ArrayList; …

AliyunOS安装Node.js

方法1&#xff1a;dnf软件包安装工具自动安装 最方便的安装方式是通过系统的dnf工具&#xff0c;我测试使用的AliyunOS的版本是Alibaba Cloud Linux 3.2104&#xff0c;具体流程如下&#xff1a; dnf module list nodejs #列出服务器中可以使用的所有nodejs版本确定下来希望安…