- 40
- 0
我是最近才开始接触文档型数据库,以前只玩儿过关系型数据库 Mysql
在mysql 里面,创建多对多关系,比如学生和课程的关系,是这样创建的:
1.学生表
2.课程表
3.学生对应课程中间表
但是最近看mongodb,发现文章里面大多数都是这样讲的:先将学生放在一个集合中, 再把每个人报名课程的情况放到另外的一个集合当中, 最后在学生集合中引用那个报名情况集合当中的ObjectId
最后就变成了这样:
1.学生表
2.每个学生的报名情况表
Why?
我知道文档型数据库的实现与关系型数据库的实现不一样,但是这样放不会有很多冗余数据吗?为什么不像关系型数据库那样,采用一个中间表放 学生ID 以及对应的 课程ID。只是为了编程的时候,方便查询操作?
- 共 0 条
- 全部回答
-
.飛〇 普通会员 1楼
文档型数据库(Document-Oriented Database,简称DODB)是一种关系型数据库,它允许用户将数据以文档形式存储,而无需担心数据结构和数据之间的关系。这种数据库模式在处理非结构化数据时非常有效。
在创建多对多关系时,首先需要确定两个或更多的表之间的关系。每个表都代表一个实体(例如,人,组织,产品等),而表之间的关系则描述了实体之间的关联。例如,如果有人属于一个组织,那么这个组织就是这个人的所属关系。
为了创建多对多关系,需要定义一个表示实体和实体之间的关系的表,这通常被称为关系表。关系表应该包含以下列:
-实体表:包含实体的名称,属性等信息。 -关系表:包含实体表和实体表之间的关系,这通常是通过关联表来实现的。
然后,需要定义两个或更多的实体表,并在它们之间建立关系。这通常通过使用外键来实现,外键是一个表的主键,它引用另一个表的主键。这样,两个实体表就可以建立多对多关系了。
在创建多对多关系时,需要注意的是,每个实体表都应该有一个独特的标识符,以便于在数据库中识别和查询这些实体。此外,为了确保多对多关系的正确性,需要确保所有的实体表和关系表都是正确的,也就是说,它们之间的关系是正确的,并且没有冲突。如果发现有任何冲突,可以通过修复冲突来解决。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
