首页 > 经验 > 关键词  > Openbiz最新资讯  > 正文

Openbiz 数据对象元数据

2012-04-12 17:19 · 稿源:站长之家用户

Openbiz 数据对象

Openbiz通过BizDataObj类映射数据库中的表到数据对象(DO)。每一个数据对象都定义了一个表名和表中的列与数据对象字段的映射关系。下图展示的就是一个最简单的数据对象与单一数据表之间的影射关系。

数据对象元数据

Openbiz数据对象有一个核心类“BizDataObj”,这个类的元数据定义如下:

BizDataObj 元素

BizDataObj 元素是一个数据对象元数据的跟元素,它有三个子元素,分别是BizFieldList, TableJoins 和 ObjReferences。BizDataObj元素具有如下属性:

Name

Name 属性是一个数据对象的标识符。Name属性应该与数据对象的文件名完全一致。

Description

Description 属性描述了数据对象的功能与方法。

Class

Class 属性指定了该对象的实现类。

DBName

DBName 属性是在Config.xml 文件中定义的数据库名称。

Table

Table 属性是数据对象所映射的数据库的表名字。我们通常把表在BizDataObj元素中也将其成为“基本表”。

IDGeneration

IDGeneration 属性指定了基本表的主键的生成方法。它支持的值可以是“Openbiz”, “Identity”, “Sequence:seqname”, “GUID”, “UUID”, 或者其它

SearchRule

SearchRule 属性为从数据源(数据表)来获取数据时附加搜索规则。

例如:SearchRule="[start_time]>'1999-10-20'"

SortRule

SortRule属性为从数据源(数据表)来获取数据时附加排序规则。

例如: SortRule="[start_time] ASC"

OtherSQLRule

OtherSQLRule 属性为从数据源(数据表)来获取数据时附加用户指定的规则。

例如: OtherSQLRule = "GROUP BY [position] HAVING [age]>30"

AccessRule

AccessRule 属性指定了一个附加的搜索规则来限定数据访问控制

例如: AccessRule="[owner_id]='{@profile:Id}’'"

CreateCondition

CreateCondition 属性为数据记录的创建行为设定了访问规则 (ACL)

例如: CreateCondition=“project.create”。 这里 “project”是一个资源名,而 “create” 是一个行为名,它们都是在Cubi模块的XML文件ACL章节中 被定义的。

UpdateCondition

UpdateCondition属性为数据记录的更新行为设定了访问规则 (ACL)

例如: UpdateCondition=“project.update”

DeleteCondition

CreateCondition属性为数据记录的删除行为设定了访问规则 (ACL)

例如: DeleteCondition=“project.delete”

Uniqueness

Uniqueness 属性设定了数据是否唯一的有效性校验。

语法: Uniquess ="fld1,fld2;fld3,fld4;.."

Openbiz将检测(fld1,fld2) 和 (fld3,fld4)的唯一性,如果数据不是唯一将会抛出异常

BizField 元素

BizField元素描述了数据对象的字段,一个字段通常用于映射到一个表格得列,它也可以是一个SQL表达式或者计算后的值。BizField元素具有如下属性:

Name

Name 属性是BizField的标识符。

Join

Join 属性是在<Join>元素中定义的名字。如果”Join”属性在BizField元素中指定,”Column”属性指向到连接表的列。

Column

Column 属性默认是基本表的列。如果”Join”属性在BizField元素中指定,”Column”属性指向到连接表的列。

SQLExpr

SQLExpr属性映射数据库引擎的SQL表达式为一个数据对象的字段。如果SQLExpr被指定,必须确定Column属性是空的,否则会引起错误。

范例: 《BizField Name=“FullName” Column="" SQLExpr=“CONCAT([FirstName],'',[LastName])"..>

Type

Type 属性设定了字段的数据类型,Openbiz数据对象所支持的数据类型为Text, Number, Date, Datetime, Currency, Phone, Blob.

Format

Format 属性指定了目标字段的数据现实格式,不同的数据类型会有不同的格式定义。我们将在数据类型与格式章节对其进行详细讲解。

Value

Value 属性是一个按指定字段计算后得出的数值。Value属性支持简单表达式。

例如: <BizField Name="Precentage" Column="" Value="[corrects]/[total]"...>。 其中 [corrects] 与 [total] 是在同一个数据对象中分别定义的2个字段。

DefaultValue

DefaultValue 属性定义了一个新记录的默认值。

Validator

Validator 属性定义了一个数据有效性校验规则,通常被应用在数据记录创建或更新时来校验本列的数值是否为有效。

例如: <BizField Name="”Fee" Column="fee" Format="Currency" Validator="{[Fee]>=15}">

ValueOnCreate

ValueOnCreate 属性设置了当数据记录被创建时该列的默认值

例如: <BizField Column="changetime" Type="Datetime" ValueOnCreate="{date('Y-m-d H:i:s')}"ValueOnUpdate="{date('Y-m-d H:i:s')}"/>

ValueOnUpdate

ValueOnUpdate属性设置了当数据记录被更新时该列的默认值

Join 元素

Join 元素描述了一个表如果连接到当前数据对象的基本表。通过连接,一个数据对象可以将其字段映射到多个数据表中。Join元素具有如下属性:

Name

Name属性是一个Join 元素的标识符。

Table

Table 属性是一个用来与当前数据对象中的基本表相连接的数据表的名字

Column

Column 属性定义了连接表中的一个列,这个列通常是指向基本表的主键的外键列。

JoinRef

JoinRef 属性定义了一个连接引用。使用JoinRef我们可以定义一个引用到连接表的引用,它也被叫做二次引用。

ColumnRef

ColumnRef 属性引用了基本表(或者JoinRef引用表)的一个列,ColumnRef通常映射的是基本表中的主键

JoinType

JoinType 属性定义了连接表的连接类型,它的值可以是 INNER JOIN, LEFT JOIN, RIGHT JOIN, 或者 FULL OUTER JOIN.

Object 元素

Object 元素定义了当前数据对象与其它数据对象的映射关系。影射关系可以是多对一,一对多,一对一和多对多映射,Object元素具有如下属性:

Name

Name 属性是数据对象引用的标识符。

Relationship

Relationship 属性定义了当前数据对象和引用的数据对象的映射关系,它的值可以是 M-1, 1-M, M-M 和 1-1.

Table

Table 属性定义了被引用对象的数据表

Column

Column属性指定了被引用对象的数据表的一个列,这个列包含了基本表的外键。

OnDelete

OnDelete 属性定义了当一个记录将被删除之前应采取什么行为。可用的选项如下:

- Cascade. 不管行在主表还是被引用表中被删除,在其它引用表中与该行记录相外键匹配的子记录也将会被删除。这就叫做联立删除,与CascadeDelete = Y 的意义相同

- Restrict. 如果有一条记录存在于该外键所对应的引用表中并且其值与当前值为引用关系,那么该记录将不允许被删除

- SetNull. 当引用的行被删除时,在引用行中的外键值将被设置为Null

OnUpdate

OnUpdate 属性定义了当一个记录被更新之前将采取什么行为,可用的选项如下:

- Cascade. 不管行在主表还是被引用表中被删除,在其它引用表中与该行记录相外键匹配的子记录也将会被更新为同样的值。

- Restrict. 如果有一条记录存在于该外键所对应的引用表中并且其值与当前值为引用关系,那么该记录将不允许被更新

- SetNull. 当引用的行被更新时,在引用行中的外键值将被设置为Null

XTable

XTable 如果当前数据对象的映射关系是多对多,那么此属性则定义了此关系中的中间表的表名。

XColumn1

XColumn1 属性是中间表的列,并且该列具有基本表的外键

XColumn2

XColumn2 属性是中间表的列,并且该列具有引用表的外键。

XDataObj

XDataObj 是一个 BizDataObject对象,它的基本表就是中间表XTable。当用户从引用的数据对象到基本数据对象关联一个记录时,一个新的记录将会在XdataObj对象对应的中间表中被创建。

举报

  • 相关推荐
  • 曝苹果为新Siri做了内部版ChatGPT 正测试搜索个人数据、执行App内操作等功能

    苹果公司正在开发一款类似ChatGPT的手机应用“Veritas”,用于内部测试明年将推出的新版Siri。该应用可快速评估Siri新功能,包括搜索个人数据、执行App内操作(如编辑照片)等。虽然不面向消费者发布,但该工具标志着苹果对Siri的全面升级已进入新阶段,旨在帮助员工高效完成测试。

  • 侵害用户权益!工信部通报29款App:涉及多款外卖小程序

    工信部通报29款App存在侵害用户权益行为,涉及多家外卖平台小程序,包括强制索权等问题。官方要求限期整改,否则将依法处置。建议用户通过正规渠道下载App,谨慎授权权限,避免点击可疑链接,定期检查权限管理,防范个人信息泄露风险。

  • 苹果回应iPhone17 Pro划痕:展示机问题将改善

    iPhone 17系列上市后,机身划痕问题引发用户集中反馈,尤其是蓝黑版本。苹果回应称,划痕并非产品缺陷,而是门店MagSafe充电器长期使用磨损导致材料转移至手机背部,清理即可恢复。苹果强调该问题非iPhone 17独有,部分iPhone 16样机也存在类似情况,承诺将改善门店展示机保管条件。同时表示产品出厂前经过严格耐磨测试,但长期使用产生轻微磨损属正常现象。

  • 微信员工回应新iPhone提示空间不足:代码Bug所致

    iPhone 17系列开售后,用户转移微信聊天记录时出现异常提示“设备空间不足”,但实际手机仍有1.29TB可用空间。微信员工“客村小蒋”回应称这是代码Bug,因缓存机制导致开机5分钟内接口返回错误数据。用户只需正常使用手机5分钟后即可恢复正常。该事件提醒用户关注微信聊天记录及缓存对设备空间的影响,同时期待微信团队尽快修复Bug。

  • iPhone调休闹钟上热搜 苹果客服回应:需手动设置

    今日,“调休日苹果闹钟未响”的话题再度在网络上引发热议。不少苹果用户纷纷吐槽,在国庆假期后的调休工作日里,原本依赖的苹果闹钟意外“罢工”,导致自己睡过头,误以为当天仍是休息日。 针对这一情况,苹果客服回应称,目前苹果闹钟

  • 卢伟冰晒小米17 Pro和iPhone 17 Pro实拍样张对比:逆光出片 这还用比么

    小米17 Pro对标iPhone 17系列,主打逆光拍摄优势。卢伟冰晒出实拍对比图,显示小米17 Pro画面更亮,逆光人像高光压制明显,暗部细节提亮。该机搭载徕卡影像系统,首发光影猎人950L传感器,采用LOFIC高动态技术,实现16.5EV超宽动态范围,结合光学镀膜大幅改善过曝、噪光等问题。LOFIC技术通过附加电容收集溢出电荷,提升强光与弱光场景的细节捕捉能力,确保亮部不过曝、暗部有层次。动态范围显著提升,拍照表现全面超越竞品。

  • iPhone 17 Pro mini首曝:4.7英寸屏 未能上市

    9月24日有博主爆料,苹果曾计划推出4.7英寸iPhone 17 Pro mini,但在DVT阶段取消开发。该机型设计类似iPhone 17 Pro,采用横向矩阵相机和铝合金一体化机身,但工程师认为其外观“荒谬”。苹果曾尝试小屏路线,iPhone 12/13系列推出mini版本但销量未达预期,iPhone 14起以Plus替代mini,然而Plus销量同样不佳。从iPhone 17系列开始,苹果新增主打轻薄的Air机型,Plus系列正式退出市场。

  • iPhone Air与17 Pro抗弯不抗摔上热搜:跌落易碎屏

    近日,iPhone 17 Pro和iPhone Air的耐用性引发关注。零售店展示机出现较多划痕与磨损,数码博主实测发现易划痕区域集中在摄像头周边。两款机型在抗弯折测试中表现良好,但在1.8米高度跌落测试中屏幕均碎裂,第二代陶瓷护盾面板未能有效防护。背面跌落时,iPhone 17 Pro仅外观受损,iPhone Air后盖出现裂纹但功能正常。分析指出,陶瓷后盖虽提升美观度,但抗跌落性能仍需加强,建议用户搭配手机壳使用。

  • iPhone17 Pro Max续航实测夺冠 iPhone Air表现不俗

    近日,iPhone17/Air系列的首批评测正式解禁,其中iPhone Air的实际体验成为大众瞩目的焦点。在众多评测内容中,海外知名博主The Tech Chap对全系机型开展的续航测试结果,格外引人关注且令人意外。 The Tech Chap的测试结果显示,不同机型的续航时长存在一定差异。iPhone Air的续航时间为6小时43分钟;iPhone17达到了6小时55分钟;iPhone17Pro为7小时34分钟;而iPhone17Pro Max表现最佳,达到了7小时

  • 曝MacBook塞进iPhone处理器:售价亲民

    分析师郭明錤透露,苹果MacBook系列新品规划:2026年底量产OLED版MacBook Pro,配备触控面板;2025年Q4推低价版MacBook,搭载iPhone同款A18 Pro处理器,目标年轻用户,配13英寸屏和多彩外壳,支持AI任务。苹果希望通过低价产品扩大市场份额。

今日大家都在搜的词: