mongodb之应用程序设计

在构建换一个新的应用程序时,通常第一件事就是设计数据模型,例如在 MySQL 关系型数据库中,设计数据模式这个步骤是标准化过程中进行规范化,重点关注从一组表格中去除冗余,和关系数据库不同,MongoDB 使用结构化的文档来存储数据,而不是存储在关系型数据库中固定的表格内~

范式化与反范式化

定义 解释
范式化 将数据分散到不同集合,不同集合之间可以相互引用数据
反范式化 将每个文档所需的数据都嵌入在文档内部
  • 一般来说,数据生成越是频繁,就越不该将这些数据内嵌到其他文档中
  • 如果内嵌字段或者内嵌字段的数据量是无限增长的,应该把这些内容保存在单独的集合中使用引用方式访问
  • 评论列表或者活动列表等信息应该保存在单独的集合中,不应该内嵌到其他文档中

基数:一个集合中包含对其他集合的引用数量
在 mongoDB 中文档内容比较多使用引用会比较好,少的话使用内嵌会比较好

数据库和集合的设计