【MongoDB】4. MongoDB的使用规范
今天拿着老师的书翻了翻看到了MongoDB的的几个使用规范,我觉得这个很有帮助先记下来
1. 数据库的使用规范
数据库通过名字表示。关于数据库的命名需要注意以下几点:
- 编码格式必须为UTF-8字符;
- 不可以出现空字符串,即"";
- 只能使用ASCII码表中的字母和数字,禁止使用除下划线(_)以外的特殊字符;
- 数据库名称区分大小写;
- 数据库名称长度限制为64个字节;
- 数据库名称不可与系统保留的数据库名称相同,即admin、local和config数据库
数据库命名的建议:
- 数据库名称建议全部小写
- 建议不要使用数字开头的数据库名称
- 建议数据库命名规则为db_xxxx,即见名知意的名称
2. 集合使用规范
集合是通过名字来标识区分。关于集合的命名需要注意以下几点:
- 编码格式必须为UTF-8字符;
- 不可以出现空字符串,即"";
- 集合命名不可含有\0字符,即空字符,这个字符表示集合名称的结尾;
- 不能出现以“System.”开头的集合名称,这-是为系统集合保留的前缀;
- 集合命名不可包喊字符 “$”;
- 集合名称的长度限制为64个字节
基于上面MongoDB集合的命名规范,以及实际开发角度提出五条集合命名建议:
- 建议不要使用除 _(下划线)和 .(点)以外的特殊字符;
- 建议集合名称全部小写;
- 建议不要使用数字开头的集合名称;
- 为了避免库级锁带来的问题,尽量对写入较大的集合使用“单库单集合”的结构,对于新增业务尽量创建新库,而不是在现有库中创建新集合;
- 建议集合命名规则为t_xxxx;
- 使用“.”来分隔不同命名空间的子集合,例如一个博客可能包含两个子集合,即blog.posts和blog.authors,而blog本身可以不存在
3. 文档使用规范
文档中键的类型一般是字符串类型,键可以使用任意UTF-8字符。关于文档的命名要注意以下几点:
- 文档中的键不能含有“\0”字符,即空字符;
- 文档中的键禁止使用任何除下划线“”以外的特殊字符,并且开头不建议使用"";
- 文档中的键建议全部为小写;
- 文档中的键不建议以数字开头;
- 不建议自定义文档中的“_id”值
- 尽量将相似的文档放在同一个集合中,将不同类型的文档分散在不同的集合中,这样可以提高索引的利用率;
- 建议不要存储过长的字符串,如果这个字段为查询条件,那么确保该字段的值不超过1KB,因为MongoDB索引仅支持1KB以内的字段;
- 建议若业务上对于存放数据大小写不敏感,则使用全部大写/小写存放(或增加一个统一大小写的辅助字段);
- 建议不要使用数组字段作为查询条件;
- 同意文档中,不可以存在相同名称的键;
节选自《NoSql数据库技术与应用》 黑马程序员 编著