首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ERP那些具有“组织”属性字段启发

前面有一篇文章简单介绍了ERP系统中那些“缩写”字段编码,具体见《ERP系统中那些“缩写”》,该篇文章以物料类型编码为例,阐述ERP系统底层编码逻辑在不同国家但是基本保持一致编码思维,帮助大家理解...今天介绍ERP系统中具有“组织”属性字段。任何事物都有归属,数据也不例外,本章介绍ERP系统中具有“属性”字段,就是数据归属。...任何ERP实施都是在一定组织范围之内,从顶层公司代码,到利润中心、成本中心,到采购采购组织、销售销售组织,到与存储、生产相关工厂等都是数据归属单位。 ?...数据产生是有自己源头,很早时候介绍过ERP系统“一手数据”概念,所谓一手数据就是ERP系统未经计算、加工、处理而是系统直接产生、获取、导入数据,如前台手工创建采购订单等,数据一旦产生,在不同组织...综上,ERP系统数据归属就是通过那些具有“组织”属性字段,实现从底层数据层面的划分,通过明确数据归属单位,进而明确数据质量问题责任单位或部门。

81111

结构字节是多大

* 没有成员结构体占用空间是多少个字节 答案是:1个字节。...这就是实例化原因(空类同样可以被实例化),每个实例在内存中都有一个独一无二地址,为了达到这个目的,编译器往往会给一个空类或空结构体(C++中结构体也可看为类)隐含加一个字节,这样空类或空结构体在实例化后在内存得到了独一无二地址...编译器在处理时会在第二个成员后面补上3个空字节,使得第三个成员偏移量变成8。结构体大小等于最后一个成员偏移量加上其大小,上面的例子中计算出来大小为12,满足要求。...但计算出来大小为6,显然不是成员m大小整数倍。因此,编译器会在成员m后面补上2个字节,使得结构大小变成8从而满足第二个要求。...由此可见,结构体类型需要考虑到字节对齐情况,不同顺序会影响结构大小。 对于嵌套结构体,需要将其展开。

82220
您找到你想要的搜索结果了吗?
是的
没有找到

Go Protobuf(比xml小3-10倍, 快20-100倍)

你可以定义数据结构,然后使用特殊生成源代码轻松在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏根据旧数据结构编译而成并且已部署程序。 1 ....Protobuf是一种轻便高效结构化数据存储格式; 4 ....传输前使用protobuf编码,接收方再进行解码,可显著地降低二进制传输数据大小。另外,protobuf非常适合传输结构化数据,便于通信字段扩展。 ? 用途 1 ....default = HOME]; } repeated PhoneNumber phone = 4; } 正如你所见,message 格式很简单 - 每种 message 类型都有一个或多个具有唯一编号字段...这些类为每个字段提供了简单访问器(如 name()和 set_name()),以及将整个结构序列化为原始字节和解析原始字节方法 - 例如,如果你选择语言是 C++,则运行编译器上面的例子将生成一个名为

1.9K50

GORM 读取别名字段(非表结构字段)值方法

问题是查询结果中包含了表中不存在一个别名字段,如何将这个非表结构字段查询结果通过 GORM 读取到表对应模型结构体中?...方案一 意思是说,如果没有使用 GORM 自动迁移,可以把结构体中 MoreInfo 字段 gorm 标签改成 ->,告诉 GORM 这是一个只读字段,就能够把查询结果中字段值读取到模型结构体中。...我当时真的是脑子抽筋了,为什么要把 gorm 标签设置成忽略这个字段呢 ‍。 方案二 如果这个模型结构体使用了 GORM 自动迁移,那就再新加一个不自动迁移扩展信息结构体就是了。...然后原结构体只保留表结构中存在字段,将原结构体嵌入到扩展结构体,再将表结构中不存在别名字段添加到扩展信息结构体中,gorm 标签还是设置成只读权限。...这样在使用 GORM 时,将 Model 设置成原结构体 &Test{},查询结果接收器设置为扩展信息结构体 &TestExt{},就可以完美解决啦,即不影响原结构自动迁移,也可以正常读取到别名字段

3.6K10

字节码文件内部结构之谜

而理解这个「字节码」文件结构就显得十分重要了,理解它是如何存储我们程序中字段、方法、属性、局部变量、各种常量值等等,是学习虚拟机工作原理基础。...因为每个常量项所对应结构都不尽相同,所每个常量项结构中第一个字节存储就是一个标志,用于区分当前项类型。...于是调来 CONSTANT_Class_info 表结构: [image] CONSTANT_Class_info 总共占三个字节,第一个字节存储标志,不再多说。...字段标准结构如下: [image] access_flags 占两个字节,它描述了该字段基本访问标志,主要包括:字段作用域,实例或类变量(static),可否序列化(transient),可变性...于我们这里示例而言,attrubute_name_index 值为 0x000D(Code),所以虚拟机可以调来 Code 表结构继续完成解析,Code 表结构如下: [image] 接着分析, 然后四个字节表明该属性所占用字节

1.4K90

Google Protocol Buffers 数据交换协议

protobuf 简介 protobuf是什么 protobuf(Protocol Buffers)是Google推出一个结构化数据交换协议,用于传递自定义消息格式,可用于同一台机器进程间、不同设备进程间数据传递...protobuf是一种语言无关、平台无关、高效、扩展性良好语言,提供了一种将结构化数据进行序列化和反序列化方法。 相对于XML,protobuf体积更小、速度更快、使用更简单。...我们仅需要定义一次数据结构,就可以很轻松地使用生成代码读/写数据,而且这些数据结构是向后兼容。...相对于XML来说,Protocol buffers在序列化结构化数据上,具有非常明显优势: 更加简单 体积减小3~10倍 速度提高20~100倍 更清晰 生成数据结构代码,更容易使用 如果要生成一个具有...clear():重置所有字段 解析和序列化 所有的protocol buffer类都有读写二进制方法: byte[] toByteArray():序列化消息并返回包含其原始字节字节数组 static

1.3K30

基于Protobuf共享字段分包和透传零拷贝技术,你了解吗?

导语 | 本文通过介绍实现Protobuf共享字段Guard,并将其应用于中控/召回场景,并获得了显著CPU/时延收益。即使不使用Guard,希望本文经验和思路也能为读者带来一些帮助和参考。...我们知道,protobuf提供了Allocated/Release系列接口,通过直接转移指针所有权方式消除Copy或Swap开销。...,例如我想要拷贝部分字段,共享部分字段,修改部分字段(分包场景),我们在下文给出了我们解决方案。...这两个接口已经足够满足在我们业务中存在几种抽象: (一)主调透传/分包 把上游传递某个字段,零拷贝传入下游请求。此时直接Attach字段即可。...为了避免拷贝大字段,我们可以在拷贝前先释放这些重字段;拷贝结束后,把重字段共享给所有的分包。

2.1K31

简单 C++ 结构字段反射

本文不讨论完整C++反射技术,只讨论 结构体 (struct)  字段 (field) 反射,及其在序列化/反序列化代码生成上应用。...懒惰是程序员天性: “勤奋” 程序员选择 § 人工手写 序列化/反序列化 代码 “懒惰” 程序员选择 构建代码生成器 (例如 protobuf、chromium/mojo) 或 § 编译器生成 序列化...StructType>,用于存储结构体内所有字段转换操作(仅关联结构类型,抹除操作字段类型): template  class FieldConverterBase...: value_converter_.operator(),传入当前结构体中字段值和字段名称;其中结构体 obj 字段值通过 obj->*field_pointer_ 得到 最后,针对 结构体...> 函数,从对应StructSchema取出记录结构体 StructType 所有字段信息 元组,然后遍历这个元组,从中取出 每个字段位置、名称,作为参数调用转换函数 fn

4.6K41

简单 C++ 结构字段反射

本文不讨论完整 C++ 反射技术,只讨论 结构体 (struct)  字段 (field) 反射,及其在序列化/反序列化代码生成上应用。...懒惰是程序员天性: “勤奋” 程序员选择 § 人工手写 序列化/反序列化 代码 “懒惰” 程序员选择 构建代码生成器(例如 protobuf、chromium/mojo) 或 § 编译器生成 序列化...StructType>,用于存储结构体内所有字段转换操作(仅关联结构类型,抹除操作字段类型): template  class FieldConverterBase...: value_converter_.operator(),传入当前结构体中字段值和字段名称;其中结构体 obj 字段值通过 obj->*field_pointer_ 得到 最后,针对 结构体...> 函数,从对应 StructSchema 取出记录结构体 StructType 所有字段信息 元组,然后遍历这个元组,从中取出 每个字段位置、名称,作为参数调用转换函数

6K31

ASP.NET Core中使用Protobuf从入门到实战

一、Protocol Buffers简介和特点 1、Protocol Buffers简介 ProtoBuf (Google Protocol Buffer)是由google公司用于数据交换序列结构化数据格式...,具有跨平台、跨语言、可扩展特性,类型于常用XML及JSON,但具有更小传输体积、更高编码、解码能力,特别适合于数据存储、网络数据传输等对存储体积、实时性要求高领域。...但序列化后数据字节很大,序列化和反序列化时间较长,数据传输效率不高。...Protobuf和Xml、Json序列化方式不同,采用了二进制字节序列化方式,用字段索引和字段类型通过算法计算得到字段之前关系映射,从而达到更高时间效率和空间效率,特别适合对数据大小和传输速率比较敏感场合使用...五、NET Core客户端调用Protobuf格式WebApi ?

1.9K10

Protobuf: 高效数据传输秘密武器

相比于 XML 和 JSON 等文本格式,Protobuf 具有更小数据体积、更快解析速度和更强可扩展性。 Protobuf 核心思想是使用协议(Protocol)来定义数据结构和编码方式。...使用 Protobuf,可以先定义数据结构和各字段类型、字段等信息,然后使用Protobuf提供编译器生成对应代码,用于序列化和反序列化数据。...编写 Protobuf 使用 Protobuf 语言定义文件(.proto)可以定义要传输信息数据结构,可以包括各个字段名称、类型等信息。同时也可以相互嵌套组合,构造出更加复杂消息结构。...字段后面的 =1,=2 是作为序列化后二进制编码中字段对应标签,因为 Protobuf 消息在序列化后是不包含字段信息,只有对应字段序号,所以节省了空间。...总结 ProtoBuf 是一种轻量、高效数据交换格式,它具有以下优点: • 语言中立,可以支持多种编程语言; • 数据结构清晰,易于维护和扩展; • 二进制编码,数据体积小,传输效率高; • 自动生成代码

43150

protobuf在java, Android下使用总结

protobuf(Google Protocol Buffers)是Google提供一个具有高效协议数据交换格式工具库(类似Json),但相比于Json,Protobuf有更高转化效率,时间效率和空间效率都是...Xml、Json是目前常用数据交换格式,它们直接使用字段名称维护序列化后类实例中字段与数据之间映射关系,一般用字符串形式保存在序列化后字节流中。消息和消息定义相对独立,可读性较好。...Protobuf和Xml、Json序列化方式不同,采用了二进制字节序列化方式,用字段索引和字段类型通过算法计算得到字段之前关系映射,从而达到更高时间效率和空间效率,特别适合对数据大小和传输速率比较敏感场合使用...protobuf转换过二进制文件具有: 空间效率 Json:107个字节 Protobuf:32个字节 时间效率 Json序列化: 1ms , 反序列化:0ms Protobuf 序列化: 0ms...缺点:消息结构可读性不高,序列化后字节序列为二进制序列不能简单分析有效性;目前使用不广泛,只支持java,C++和Python; 使用: 1.首先要在adroid stdio工程根路径下,就是和settings.gradle

1.7K10

protoc语法详解及结合grpc定义服务

而今天总结Protocol Buffers 是一种轻便高效结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。...可用于通讯协议、数据存储等领域语言无关、平台无关、可扩展序列化结构数据格式。本文主要以Golang语言进行介绍。 应用领域 数据通信、grpc通信、微服务。.../golang/protobuf/protoc-gen-go 简单例子 我们创建一个p.proto文件这个例子中message代表一个消息类型,在消息类型中有三个字段,这里不在多说,大家都明白...无效编码负数 - 如果您字段可能具有负值, 请改用sint32。 int32 int64 使用可变长度编码。无效编码负数 - 如果您字段可能具有负值,请改用sint64。...,很明显,我们将用这个数组来存储我们代码了,任何类型都可转换成字节,因此可以存储到该字段里 定义服务 syntax = "proto3"; import "any.proto"; message

2.7K20

【说站】java之JVM字节结构

java之JVM字节结构 1、魔数 所有.class文件前四个字节都是魔数,魔数固定值为0xCAFEBABE。...2、版本号 版本号为魔数后4个字节,前2个字节显示下一个版本号,后2个字节显示主版本号。 主版本号后字节是常量池入口。在常量池中保存两种常量:字面量和符号引用。...字面量在代码中声明为Final常量值,符号引用类别和界面的全局限定名、字段名称和说明符、方法名称和说明符。常量池整体分为常量池计数器和常量池数据区两部分。...7、接口信息 父类名称后为两字节接口计数器,描述了该类或父类实现接口数量。紧接着n个字节是所有接口名称字符串常量索引值。...8、字段字段表用于描述类和接口中声明变量,包含类级别的变量以及实例变量,但是不包含方法内部声明局部变量。 以上就是java之JVM字节结构介绍,希望对大家有所帮助。

25230

java项目中使用protobuf扫盲笔记

Protocal Buffers(简称protobuf)是谷歌开源一种数据传输协议,类似于 XML、JSON 等技术,用于结构数据序列化、反序列化。...适合高性能,对响应速度有要求数据传输场景,生成字节码,二进制数据格式需要编码和解码,不具有可读性,但是比 XML、JSON 小,传输速度更快。...false string String 空字符串 enum enum 第 1 个枚举值 bytes ByteString 空字节数组 字段限制 1、required:字段只能也必须出现 1 次,多用于必填项...,必须赋值字符 required int32 id = 1 [default = 0]; 2、optional:字段可出现 0 次或多次,可有可无字段,可以使用[default = xxx]设置默认值...工作原理 首先我们需要编写一个 .protot 文件来定义序列化数据结构 运行 protobuf 编译器 protoc 生成对应语言代码,如 java 会生成 .java 文件(每个消息对应一个类,

13010

生化小课 | 氨基酸具有共同结构特征

生 化 小 课 医学生:生理生化 必有一挂 生科/生技:生化书是我见过最厚教材 没有之一 每周一堂 生化小课 —— 期末/考研 逢考必过—— 氨基酸具有共同结构特征 所有20...它们在侧链或R基团上彼此不同,其结构、大小和电荷各不相同,并影响氨基酸在水中溶解度。除了这20种氨基酸之外,还有很多不太常见氨基酸。...由于α-碳原子周围成键轨道四面体排列,四个不同基团可以占据两个独特空间排列,因此氨基酸具有两种可能立体异构体。...对于所有手性化合物,具有与L-甘油醛构型相关立体异构体被称为L,与D -甘油醛构型相关立体异构体被称为D。...另一种指定手性中心周围构型系统是RS系统,它用于有机化学系统命名法,更精确地描述了具有多个手性中心分子构型(第17页)。

44230

protobuf 序列化和反序列化

序列化是将结构化数据转换为一系列字节过程,反序列化则是将字节流解析为结构化数据过程。 序列化过程通常涉及以下步骤: 定义消息类型:使用.proto文件定义消息类型和字段。...编写应用程序:编写应用程序,创建消息对象并填充字段。 序列化数据:使用protobuf库,将消息对象序列化为字节数组。 传输数据:将字节数组发送给接收方。...反序列化数据:接收方使用protobuf库,将字节数组反序列化为消息对象,并访问其中字段。 在序列化过程中,protobuf使用压缩技术来减小数据大小,从而提高传输效率。...XML是一种常用序列化和反序列化协议,具有跨机器,跨语言等优点。...结构化数据定义:protobuf使用.proto文件来定义消息类型和字段,提供了结构数据模型,使得数据组织和访问更加清晰和灵活。

21510

Protobuf编码原理及优化技巧探讨

基于这个定义序列化算法具有两个行为: 1、序列化:内存数据->通信链路字节流 2、反序列化:通信链路字节流->内存数据 常用序列化算法有:json、xml、protobuf 等,将这些算法进行归纳不难发现这些算法主要是对三种基本类型...string "" bytes 空字节结构体类型 null (对应字段指针为空) 数组类型 空数组 map类型 空map 需要注意是如果某个字段结构体类型,该字段对应结构体中所有元素均为默认值...2、 优化技巧探讨 通过分析protobuf编码原理,可以发现如果对序列化后字节流长度有要求,无脑地定义数据结构是很不理智,本节将讨论部分优化技巧。...从对protobuf编码原理介绍那部分可以看出,protobuf因为考虑兼容性原因,存储了很多tagid、length这些记录结构信息字段。...3、 未来工作展望 基于上述分析和实践,不难发现protobuf进行序列化过程中,需要储存结构信息和数据信息。对于结构紧密数据,protobuf会导致大量bit用于表征结构信息。

43621

配图清新Protobuf 编码&避坑指南

具有很多优点,但也有一些需要注意缺点: 优点: 效率高:Protobuf以二进制格式存储数据,比如XML和JSON等文本格式更紧凑,也更快。序列化和反序列化速度也很快。...跨语言支持:Protobuf支持多种编程语言,包括C++、Java、Python等。 清晰结构定义:使用protobuf,可以清晰地定义数据结构,这有助于维护和理解。...需要额外编译步骤:你需要先定义数据结构,然后使用protobuf编译器将其编译成目标语言代码,这是一个额外步骤,可能会影响开发流程。...最佳实践 字段编号 需要注意是范围 1 到 15 中字段编号需要一个字节进行编码,包括字段编号和字段类型;范围 16 至 2047 中字段编号需要两个字节。...也就是说,当你字段数量超过 16 时,就需要用两个以上字节表示了。

54000
领券