- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设计了一些Vehicle Identification Number (VIN)不同 OEM 的解码器。关于 VIN 号码的事情……尽管有些标准化,但每个 OEM 都可以重载字符位置代码并以不同的方式对待它们,添加“额外”元数据(即星号指向 VIN 号码之外的更多数据)等等。所有这些,我已经能够构建几个不同的 OEM VIN 解码器,现在我正在尝试构建一个 GM VIN 解码器,这让我很头疼。
问题的要点在于,GM 根据卡车还是汽车对车辆属性部分(位置 4、5、6、7)的处理方式有所不同。详情如下:
通常,我所做的就是设计自己的粗略 ETL
流程,将数据导入 RDMBS - 每个表大致与主要 VIN 分割相关。例如,将有一个 WMI 表、EngineType 表、ModelYear 表、AssemblyPlant 表等。然后,我构造一个 View ,该 View 连接一些上下文数据,这些数据可能会或不会直接从 VIN 号码本身的字符代码中收集(例如,某些车辆类型仅具有某些车辆发动机)。
要查找 VIN,只需使用 VIN 字符串的每个主要字符代码位置分割查询 VIEW。例如,1FAFP53UX4A162757 的示例 VIN 在不同 OEM 的 VIN 结构中分解如下:
| WMI | Restraint | LineSeriesBody | Engine | CheckDigit | Year | Plant | Seq || 123 | 4 | 567 | 8 | 9 | 10 | 11 | 12-17 |---------------------------------------------------------------------------------| 1FA | F | P53 | U | X | 4 | A | ... |
通用汽车已经对此进行了干预...根据它是汽车还是卡车,字符代码位置的含义不同。
我的意思的示例 - 下面的每个 ASCII 表都与 SQL 表有一定的关联。 etc..
表示还有大量其他柱状数据
这是位置 4,5 的示例(对应于车辆系列/系列)。这些确实是相辅相成的,尽管有上面所示的分割,VIN 源数据并没有真正区分位置 4 和 5。
| Code (45)| Line | Series | etc..--------------------------------------| GA | Buick | Lacrosse | etc..
..位置6对应于 body 风格
| Code (6) | Style | etc..--------------------------------------| 1 | Coupe, 2-Door | etc..
..但对于卡车来说,结构完全不同。考虑位置 4 本身就是车辆总重限制 GVWR。
| Code (4) | GVWR | etc..-------------------------------| L | 6000 lbs | etc..
..位置 5,6(底盘/系列)现在的含义与乘用车的位置 4,5 类似:
| Code (56) | Line | Series | etc.. ---------------------------------------| RV | Buick | Enclave | etc..
我正在寻找一种巧妙的方法来在关系设计中解决这个问题。我想在 VIN 解码时返回一个通用结构 - 如果可能的话(即不返回汽车与卡车的不同结构)
最佳答案
根据您对我关于是否可以通过使用其他值来识别车辆类型的评论的回答,一种可能的方法可能是拥有一个包含公共(public)字段的主表和两个详细表,每个表都有相应的字段汽车或卡车。
大约如下所示(这里我猜测 WMI 是 PK):
主表
| WMI | Restraint | Engine | CheckDigit | Year | Plant | Seq |
| 123 | 4 | 8 | 9 | 10 | 11 | 12-17 |
汽车详细信息表
| WMI | Veh Line | Series | Body Type |
| 123 | 2 | 3 | 4 |
卡车明细表
| WMI | GWVR | Chassis |Body Type |
| 123 | 7 | 8 | 9 |
有了这个,您可以使用唯一的选择来检索所需的数据,如下所示:
Select *
From
(
Select M.*,
C.*,
Null GWVR,
Null Chassis,
Null Truck_Body_Type
From Master_Table M
Left Join Car_Table C
on M.WMI = C.WMI
Union
Select M.*,
Null Veh_Line,
Null Series,
Null Car_Body_Type
T.*
From Master_Table M
Left Join Truck_Table T
on M.WMI = T.WMI
)
对于 DML SQL,您只需要在插入或更新语句之前控制您是否拥有汽车或卡车型号。
当然,您需要确保每个主行仅存在一个详细信息,无论是在汽车详细信息表还是卡车详细信息表上。
HTH
关于sql - 车辆识别码(VIN)设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12994672/
我希望向订单输入系统添加一项功能,以实时显示订单位置与指定送货车之间的距离(以公里为单位)。 货车有一个 GPS 跟踪系统,来自 High Point GPS , 带有查询司机位置的API,以LAT/
我正在尝试为 C 中的以下内容动态分配空间,我想知道是否有人可以解释如何操作?字符* (*车辆)[][5]; 这 5 个元素是车辆的详细信息,第一个数组用于不同的车辆。所以我正在尝试为不同的车辆动态分
我有难得的机会在几个小时内与负责为美国交通部实现车辆 2 车辆通信的人员和其他 2 人会面。 您有什么问题要问他吗? 我知道这有点不正常,但这是一个“反向”线程,我觉得他对我想与这个社区分享的主题有一
我对 GraphHopper 路由引擎稳定版本 0.5 有疑问 使用vehicle=car时我可以获取路线,但使用自行车和步行则无法获取路线。 Here is an example在 GraphHop
有谁知道以 PHP、Perl 或 Python(或任何其他语言,我可以轻松转换代码)作为开源/免费软件提供的 ISO 3779 车辆 VIN 解码器库? 即使只是解码 WMI 部分(前 3 个位置)也
我正在尝试使用 L5 分页,一切看起来都很好,直到我点击第二页链接。当我点击它时出现此错误: Laravel 5 Pagination undefined variable vehicles in v
我是一名优秀的程序员,十分优秀!