
# BO
#### 功能介绍
BO（Business Object）是一个业务对象，业务对象映射到服务中的一个实体，对应数据库中的一张表。
#### 属性说明
在业务设计页面，从"business"中，拖拽"BO"对象至画布空白区域。选中对象，在右侧页面设置对象属性，如[图1]所示。
图1BO   
![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002148140312.png)
- 对象名称：设置对象的名称，必须使用大驼峰格式，不允许存在连续的大写字母。
- 中文名：设置BO对象的中文名称。
- 分库逻辑：设置BO数据分库（sharding）策略。
  - 广播对象（BROADCASTING）：不需要进行分库，数据在所有数据分库实例上复制，一般是包含配置信息或者维度数据的小表。
  
  - 根对象（ROOTED）：分库的根对象，每个服务只能有一个。支持的主键类型有UUID和雪花算法，其中雪花算法支持逻辑数据库水平扩展。
  
  - 分库对象（SHARDING）：需要进行分库，所有对象实例必须有字段关联的ROOTED BO（AstroPro会自动创建ROOTED表引用字段，并创建外键关联ROOTED表），SHARDING表的分库策略和ROOTED必须保持一致。
  
  - 单库对象（SINGLE）：单表，不进行分库，也不是广播表，仅在一个数据库实例中存在。
   
- 表名：设置BO对象在数据库中的表名。
- 字段：编辑对象的字段。单击"字段"，进入编辑对象字段页面，可为对象添加字段和索引。其中，"NORMAL"为一般类型索引，使用B+树类型存储；"UNIQUE"为唯一索引。
  图2新增字段   
  ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002147999880.png)
  图3添加索引   
  ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002148000564.png) 
- 自定义API：当系统预置的增删改查操作不能满足需求时，您可以通过自定义API来实现某个操作。如何为对象自定义API，请参见[自定义API开发指南](https://support.huaweicloud.com/devg-astropro/astropro_06_0156.html)。
- 软删除策略：开启软删除策略后，数据删除时执行逻辑删除，数据仍然保留在数据库中。关闭软删除策略后，数据删除为物理删除，即直接从数据库中删除，不可恢复。 **注意：购买AstroPro企业版实例时，才会显示"软删除策略"配置项。**
  
- 恢复软删除：当开启"软删除策略"时可配置。开启恢复软删除，则支持将软删除的数据恢复。
- 支持BO多租：BO是否支持多租。开启BO多租时，请确保"多租模型"已开启。
  **注意：购买AstroPro专业版或企业版实例时，才会显示"支持BO多租"配置项。**
  图4开通多租模型   
  ![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001783813793.png) 
- 不允许修改：对象是否支持修改。
- 操作：对新建的对象可执行哪些操作，如新增、更新、删除、查询、批量新增、批量更新、批量查询、批量删除和自定义查询。默认值为新增、更新、删除、查询和批量查询。
- 对象版本化：通过版本号机制实现的乐观锁功能。开启此功能时，会在表中自动添加一个devspore_version的字段来记录版本。在更新操作时会检查当前版本号和DB中的版本号是否一致，如果一致则更新数据并增加版本号，如果不一致则说明数据已被其他事务修改，更新失败。 **注意：购买AstroPro企业版实例时，才会显示"对象版本化"配置项。**
  
- 对象描述：对象的描述信息。
 
