文档详情

Ofbiz数据库表结构设计答题.docx

发布:2017-04-17约9.63千字共15页下载文档
文本预览下载声明
PAGE \* MERGEFORMAT15 目录  TOC \o 1-3 \h \z \u  HYPERLINK \l _Toc440494264 Ofbiz数据库表结构设计  PAGEREF _Toc440494264 \h 2  HYPERLINK \l _Toc440494265 1. ofbiz数据库表结构设计 - PARTY  PAGEREF _Toc440494265 \h 2  HYPERLINK \l _Toc440494266 2. ofbiz数据库表结构设计 - CONTACT_MECH  PAGEREF _Toc440494266 \h 4  HYPERLINK \l _Toc440494267 3. Ofbiz数据库表结构设计 - 订单ORDER  PAGEREF _Toc440494267 \h 8  HYPERLINK \l _Toc440494268 4. ofbiz数据库表结构设计 - 订单支付ORDER_PAYMENT_PREFERENCE  PAGEREF _Toc440494268 \h 10  HYPERLINK \l _Toc440494269 5. ofbiz数据库表结构设计 - 库存INVENTORY  PAGEREF _Toc440494269 \h 12  HYPERLINK \l _Toc440494270 6. ofbiz数据库表结构设计 – Payment Invoice  PAGEREF _Toc440494270 \h 13  Ofbiz数据库表结构设计 转载: HYPERLINK /s/blog_a2ca5d8c01017fa0.html /s/blog_a2ca5d8c01017fa0.html ofbiz数据库表结构设计 - PARTY ofbiz的精华就在于其数据结构(表结构)的设计。数据结构的通用性也决定了ofbiz几乎可以适用任何企业应用。我们首先来看看PARTY相关的表结构设计。 在ofbiz中,PARTY是个抽象概念,它可以是一个人(用户、员工、家人等等),也可以是个组织(公司、部门、项目组、供应商、集团客户等等)。然而毕竟个人和组织的许多属性是不同的,比如姓名就只有个人有,组织只有组织名称等等,因此,在PARTY基础上派生出两个对象(两张表),PERSON带表个人,PARTY_GROUP代表组织。我们注意到在PERSON和PARTY_GROUP两张表里,有PARTY_ID作为外键指向PARTY表的PARTY_ID主键,而PARTY_ID在PERSON和PARTY_GROUP里同时也扮演着主键的角色。这种设计模式大大简化了程序开发的复杂度。 ? 下面再来看看PARTY的角色。ofbiz中并没有一个我们习惯的ROLE表,而只有一个ROLE_TYPE表。其实这个ROLE_TYPE就是我们习惯的ROLE,可能是ofbiz觉得现实中分不清什么是ROLE,什么是ROLE_TYPE,取而代之的是ROLE_TYPE里有个PARENT_ROLE_TYPE_ID指向自己,用此方式来表示一个ROLE_TYPE(角色)的层级结构。 PARTY_ROLE是PARTY和ROLE_TYPE的多对多关系表,我们当然能够理解,一个PARTY通常会有多个角色。 ofbiz的角色相关的设计中,最精妙的是PARTY_RELATIONSHIP。PARTY_RELATIONSHIP的几个主要字段是PARTY_ID_FROM、PARTY_ID_TO、ROLE_TYPE_ID_FROM、ROLE_TYPE_ID_TO、PARTY_RELATIOSHIP_TYPE_ID。现实社会中,每个人都有不同的角色,每个人与其他人或组织也有不同的关系,PARTY_RELATIONSHIP就是为了这些复杂的人以及组织之间的关系而设计的。比如,某个人P是某个公司O的雇员,那么在PARTY_RELATIONSHIP表中,PARTY_ID_FROM指向PARTY表中的P这条数据,PARTY_ID_TO指向PARTY表中的O这条数据,ROLE_TYPE_ID_FROM指向ROLE_TYPE表中的EMPLOYEE(ofbiz的初始数据中有),ROLE_TYPE_ID_TO指向ROLE_TYPE表中的ORGANIZATION_UNIT(ofbiz的初始数据中有),PARTY_RELATIONSHIP_TYPE_ID指向PARTY_RELATIONSHIP_TYPE表中的EMPLOYMENT(ofbiz的初始数据中有)。用这种方式,我们可以表示出社会上几乎所有的人、组织之间的关系。在PARTY_RELATIONSHI
显示全部
相似文档