
# DATABASE对象设计规范
#### 规则2.1 避免直接使用内置的DATABASE（如postgres、gaussdb等）
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
**违反规则的影响**：
- 内置的数据库编码、兼容模式不符合业务要求时，需要重新迁移数据。
- 所有业务均使用内置数据库，影响变更耗时。
**方案建议**：
- 根据实际业务需要，合理创建专用DATABASE并划分给业务使用。
 
#### 规则2.2 创建DATABASE时必须选择正确的数据库编码
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
**违反规则的影响**：
- 选错数据库编码可能导致数据乱码，且不支持直接修改数据库编码，需重新建库重新导入数据。
**方案建议**：
- 通常建议建库时指定ENCODING为UTF-8编码，特殊场景根据实际情况而定。
 
#### 规则2.3 创建DATABASE时必须选择正确的数据库兼容模式
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
**违反规则的影响**：
- 选错数据库兼容模式，会导致从其他厂商的数据库迁移到DWS后出现行为不一致问题，且不支持直接修改数据库兼容模式，需重新建库重新导数
**方案建议**：
- 根据源库端数据库类型，在DWS中建库时通过DBCOMPATIBILITY指定兼容模式，当前支持Teradata、Oracle和MySQL等多种兼容模式。
 
#### 建议2.4 存在关联计算的对象创建在同一个DATABASE中
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
**违反规则的影响**：
- 跨库访问无论使用哪种方案，性能均劣于同一DATABASE内的关联操作。
**方案建议**：
- 创建多个DATABASE的场景，将需要执行关联计算的对象，创建在同一DATABASE中。
 
