1、有排序需求的属性在设计document的时候要定义一个属性,不能放到contents里面去,否则后期无法实现排序的需求。
2、有频繁检索需求就要为其定义一个属性用来存放其值。不能只存放到contents里面去。或者两个地方都存放。
3、如果有全文检索的需求实体的设计方案:
如果不用第三方的检索工具那就只能是尽量多的将属性存放到conents里面去,外面的用or查询来实现,此时外面不应当有太多属性。
NoSql的Collection设计 原则。
1,Collection 有固定的schema。
2,减少字段名的长度。减少存储空间。
3,_id由客户端生成。降低服务端的压力。
4,当单个表数据量在千万级以上时,建议用分表的模式来设计
分表设计要对指定字段进行水平拆分。
注意:分表设计有个前提,就是查询要能按照拆分的规则找到对应的表。不然到时候都不知道去那张拆分的表里面去查询。
4、一对多关系的几种设计
a、一对很少且不需要单独访问内嵌内容的情况下可以使用内嵌多的一方。最主要的优点就是不需要单独执行一条语句去获取内嵌的内容。最主要的缺点是你无法把这些内嵌文档当做单独的实体去访问,更新不方便,单条数据不能大于16M。是最优先考虑的方式
eg:人的住址(一个人可能有多个住址)
User {_id,name,adress:['','','',......]}
b、一对多且多的一端内容因为各种理由需要单独存在的情况下可以通过数组的方式引用多的一方的主键。
eg:parts(零件)、product(产品)一个产品由多个零件组成
parts 表
{_id,name,price}
product 表
{_id,name,parts:[id1,id2,id3,......]}
相关推荐
- 这部分可能涉及关系代数、元组演算、规范化理论,以及如第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等数据库设计原则。 7. **数据库设计**: - 数据库设计涉及需求分析、概念设计(通常使用E-R模型)、...
- **BASE**:基本可用、软状态、最终一致性,是NosQL数据库通常采用的数据一致性模型。 3. **扩展与复制策略** - **分片**:通过区间划分、轮流放置或一致性哈希实现水平扩展。 - **复制**:主从复制和对等复制...
ER(实体-关系)模型是概念设计阶段常用的方法,用于描绘实体、属性和实体间的关系。 - 正确设计数据库的关键是正常化,通过消除冗余和依赖,确保数据的一致性和完整性。 3. SQL语言: - SQL(结构化查询语言)是...
11. **数据库设计原则**:如KISS(保持简单和愚蠢)、YAGNI(你不会需要它)等,可以帮助避免过度设计。 12. **数据库设计工具**:例如MySQL Workbench、Oracle SQL Developer等,可以帮助我们更直观地进行数据库...
关系数据库设计需要遵循一定的设计原则和技巧,这包括需求分析、概念设计、逻辑设计和物理实现四个阶段。优秀的设计能够提高数据管理效率,提升数据质量,同时降低数据维护成本。 关系数据库规范化是为了消除数据...
1. **数据库设计的基本概念**:数据库设计涉及对数据模型的选择,如关系型数据库、NoSQL数据库或图形数据库等。关系型数据库是最常见的,基于E-R(实体-关系)模型,而NoSQL则适用于大数据和分布式环境。 2. **需求...
2. **选择合适的数据库类型**:根据应用程序的需求,选择适合的数据库类型,如SQL数据库用于结构化数据,NoSQL数据库则适用于非结构化或半结构化数据,以及特定场景如机器学习和物联网。 3. **一致的命名规范**:...
最后,随着大数据和云计算的发展,NoSQL数据库、分布式数据库等新型数据库技术逐渐崭露头角。它们在处理高并发、大规模数据场景时具有优势,但也需要开发者理解其特有的设计原则和最佳实践。 总结来说,数据库设计...
概念设计通过ER(实体-关系)模型将业务实体和它们之间的关系转化为图形表示;逻辑设计则将ER模型转换为关系模式,即表结构;物理设计考虑数据的存储方式和访问效率,如索引、分区等。 接着,我们深入到SQL语言,它...
9. **NoSQL数据库**:随着大数据和分布式系统的兴起,NoSQL数据库如HBase、Cassandra等的使用越来越广泛,文档可能会讲解其设计理念和应用场景。 10. **数据库设计案例分析**:通过实际案例,展示如何进行需求分析...
14. **NoSQL与NewSQL**:对比关系型数据库,探讨NoSQL数据库(如MongoDB、Cassandra)和NewSQL(如Google Spanner、TiDB)的特点和适用场景。 15. **数据库设计工具**:如MySQL Workbench、ERD工具等在数据库设计...
数据库设计应遵循规范化原则,避免数据冗余,提高数据的一致性和查询效率。同时,为了应对高并发的电子商务环境,可能需要考虑读写分离、缓存策略、负载均衡等高级设计。此外,随着大数据和云计算的发展,分布式...
虽然《数据库设计与开发》可能主要集中在关系型数据库,但可能会提及NoSQL数据库的基本概念,如MongoDB的文档型存储、Cassandra的列族模型等,以拓宽读者的视野。 总而言之,《数据库设计与开发》这本书全面地涵盖...
2. **数据库类型**:关系型数据库(如上述提到的MySQL等)和非关系型数据库(如NoSQL数据库,如MongoDB、Cassandra)是两种主要的数据库类型。关系型数据库基于表结构,非关系型数据库则更加灵活,适合处理大量非...
概念模型设计通常采用实体-关系(E-R)模型,通过实体、属性和关系来抽象数据。逻辑模型设计则转换为特定数据库管理系统支持的数据模型,如关系模型、对象-关系模型或NoSQL模型。 **实现**阶段涉及将设计模型转化为...
"网页数据库设计圣典"这本书很可能涵盖了上述所有方面,并可能深入到更高级的主题,如NoSQL数据库(如MongoDB)、分布式数据库、云数据库服务以及大数据处理。书中可能还会讨论到如何利用ORM(对象关系映射)工具...
以及非关系型模型,如NoSQL数据库,适用于大数据处理和分布式系统。资料可能涵盖ER(实体关系)图,用于可视化和定义实体、属性和关系,这是设计关系数据库的关键工具。 其次,正常化是数据库设计的一个关键过程,...
- 随着技术的发展,出现了多种类型的数据库系统,包括关系型数据库(如SQL Server)、非关系型数据库(NoSQL)等。 - SQL Server是由微软公司开发的一款流行的关系型数据库管理系统,特别是在企业和商业领域中有着...
此外,还可能涵盖了关系数据库的扩展,如分布式数据库、NoSQL数据库和数据仓库的设计原则。 通过学习这一章,你可以掌握数据库设计的核心原理,从而在实际项目中创建高效、可靠且易于维护的数据库系统。对于IT专业...
8. **NoSQL数据库**: - NoSQL(Not Only SQL):非关系型数据库,适合大数据和高并发场景,如MongoDB、Cassandra等。 通过学习“数据库原理及设计”,你可以掌握如何有效地设计、管理和维护数据库,为各种业务...