mongodb数据库怎么设计好? 5C

假如有两个集合一个是user一个是order,

user表: {_id: 1, user_name: "张三", ...}
order表: {_id: 1, user_id: 1, order_no: 1, ...}

前提: 订单表会很大.
问题: 我想根据用户名模糊查询订单我需要怎么设计好?把用户名加到订单表吗?
如果把用户名加到订单表如果用户改了名字那么以前的订单就查不到了,如果改用户名同时改订单里的用户名是不是会写操作太多很麻烦?

1个回答

我觉得首先用户名不可能加在订单表上的,
其次,根据用户名模糊查询的话,你能否保证用户名不重复?
满足条件的话,你可以用用户id作为外键关联两张表。先根据用户名查询出用户Id,再根据用户id查询order表。
当然,用户表和order表是一个一对多的关系。

EvaLilys
EvaLilys 回复m0_37928787: EXISTS的效率会比in好一些
一年多之前 回复
weixin_39493162
weixin_39493162 一楼说的很对,只要理解用户表和order表是一个一对多的关系,涉及起来就很简单了
一年多之前 回复
m0_37928787
赵乾超 如果我要模糊查询用户名中姓'张'的用户的订单,这个时候可能会有多个姓张的用户再用order表in用户id吗? 我感觉用in的话效率不太好
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mongodb数据库设计???

最近在做一个类似问卷调查的系统,需求是需要动态地生成一份调查问卷,调查问卷里面包含一些模块,但是每个模块的数据结构不一样,有的是直接填写的,有的是里面含有一些问题的,而且里面的问题类型还不一样,有的是纯填空题,有的是选择题,看了下文档,经理觉得用mongodb可能比关系型数据库更容易实现,但我应该怎么去关联调查问卷 - 模块 - 问题 之间的关系呢 ![图片说明](https://img-ask.csdn.net/upload/201601/04/1451886663_608458.png)

请问 nodejs 怎么在页面把图片以二进制的格式保存到mongodb数据库中

请问 nodejs 怎么在页面把图片以二进制的格式保存到mongodb数据库中

多用户系统的数据库(MongoDB)设计

各位大神好,现在公司需要做这么一个平台,这个平台是提供给个人开发者的,个人开发者可以注册登陆到这个平台,登陆后,可以自己创建集合,通过我们提供的公有rest API,对自己创建的集合 进行增删改查。创建自定义集合的数量不受限。 我们现在的思路是:创建2个集合,一个集合保存用户自定义集合的名称,字段,以及字段类型等等信息,另一个集合存储自定义集合的数据。这种思路的问题是,单集合数据量过大,如果有成千上万的开发者,每个开发者都创建多个自定义集合,这个数据量太多了。 另一种思路是:用户的每个自定义集合,都单独创建一个集合。这种思路的问题是,成千上万的开发者,如果每个开发者都创建多个集合,这样,数据库里面的 集合数目又太多了。gg 有没有人有这方面的设计经验? 提前谢谢各位大神。

java如何转换MongoDB数据库字段类型?

如何将“uid”为“14743423697176l”的“logout_time”字段从int32类型转换为int64类型? 目前知道$type用来转换,但具体怎么写还请大神解答! 下面是错误代码: BasicDBObject bson = new BasicDBObject("uid", 14743423697176l); BasicDBObject bson1 = new BasicDBObject("logout_time", 1474342369l); BasicDBObject bson2 = new BasicDBObject("$type", bson1); userCollection.updateOne(bson, bson2);

如何使用mongodb设计评论、回复这类表

最近在学习mongodb, 打算把以前mysql数据库的内容抽离出来, 以前想到的是文章id下面放个list存放评论,可无法做到分页、和增删 不知大神有什么好的设计

问卷调查类网站数据库怎么设计?

各位大神,我想做个网站,里面包含问卷调查类似的功能,用户可以自定义问卷调查或表格收集信息。【问题是】每个用户自定义的信息不一样,如:用户自定义的表的列数和列名均不相同,这怎么怎么设计数据库中的表啊?总不可能让我为每个用户自定义的表或问卷在数据库中动态生成一张与之对应的新表吧???哪位大神给个思路,在这先谢谢了!

数据库查询效率的问题

自己在尝试着开发第一个网站,很多知识不懂。现在我在正文页的左边添加了阅读排行榜,最新评论,最新文章。然后在后台查询数据库(MongoDB)的时候就嵌套了三层数据库的查询(一个查询阅读,一个查询评论,一个查询文章)。我感觉这种查询方式在数据多了过后效率应该会特别低。但是我不知道该设计这种查询。

数据库扩展字段需要怎么设计??

今天被问了一个关于数据库的问题,当表已经建好,但是之后的开发中需要添加其他的字段,在不重新创建数据库的情况下,表的字段的扩展要怎么去做,求告知!!!

问一个关于IM的好友关系数据表设计

目前在设计一个IM软件,但是在好友关系这里有点疑问,如果用户量少的话我可以一个用户建立 一个数据表,但是用户量大的话怎么设计呢?我百度了一下,有说存储在一个字段用字符分离的 ,也有说建立这样的 好友1 好友2 好友3 本人 0 0 0 好友1 0 0 0 好友2 0 0 0 好友3 0 0 0 如果这样的话是不是有点繁琐了? 有数据库的高手有自己的一些看法吗?

MongoDB 读写分离

《MongoDB管理与开发精要》11.5.2节,谈到读写分离,利用ReplicaSet主从机集群,写主要在高性能的PRIMARY,读则从一般的SECONDARY,用以分担PRIMARY的高强度读写压力。 但是在ReplicaSet里面,对PRIMARY的写就是对SECONDARY的写,因为OPLOG的同步,那么也就是说,PRIMARY写繁忙,必定会导致SECONDARY的写繁忙,如果SECONDARY不及时写的话,导致跟不上OPLOG,会引起全库同步,结果会更糟糕。 从这点看,个人感觉这个"读写分离"概念应该是有问题的,如此设计的目的,应该仅用于分担读压力,而对于写,其实集群内所有主机的压力都是相同的,至少是相当的,那么再反过来说,SECONDARY不应该被视为性能低于PRIMARY的机器,对于一个RS,集群内的主机性能应该是相当的才对吧? 当然了,PRIMARY的写和SECONDARY的写还是有区别的,SECONDARY的写是不需要逻辑判断的,照搬照抄就可以,PRIMARY的写则需要对数据做校验、过滤等操作。 不知道我理解的对不对……

请问一下,实现排队和插队,数据库怎样设计比较有效率?

新手求教。 本人的几种思路: 1.传统的序号,当要插队时,后面所有人的序号+1。 2.链表。 3.数组,但是传统的的SQL数据库能存数组么?没见过。目前想的是mongodb存json数组

mongodb 对于每分钟数据量1千万行左右的数据,怎么合理设计表、集合

## 对于数据量很大的模型如何设计优化更合理,查询速度更短: 1. 每分钟数据量在1千万行,7GB左右 2. 只有一台服务器 **当前结构:按天建数据库,按分钟建集合,查询1天的数据耗时在2s,但是查询2天耗时要6s ** ![图片说明](https://img-ask.csdn.net/upload/201905/12/1557622072_405166.png)

怎样实现springboot项目:一个实体固定属性存在关系数据库,可扩展属性存在mongdb中

有这样一个需求,需要动态可修改一个实体(即:一个表)的字段,因为有些字段是必须要用关系型数据库支持的,所以我想着能不能以主键为关联,将固定字段存在关系型数据库中(例如:postgresql),可扩展的字段放到mongodb这样的非关系型数据库中,但是却不知道这两个数据库中的表设计,以及代码中的实现? 项目是springboot的,用了spring-data-JPA 最好是有demo的,希望有大神帮帮忙~~~

Mongo数据库限制上传文件的大小

![图片说明](https://img-ask.csdn.net/upload/201710/13/1507863181_703024.png)上传信息到mongo数据库时,在保存时出现以上错误,说文件超出了最大限制,但是程序里没有对上传的文件进行大小控制

客服系统服务器数据存储问题

目前设计了一套聊天客服系统,初步规模大概每天接待2000人。 目前我文字内容全部存储到了mysql中每发一次消息就插一条记录,如果发的是图片或者语音就存文件名然后根据文件名读取。感觉这种方式如果时间久了或者规模大了不是很合理。看了下网上文章感觉nosql更适合吧之前没接触过nosql。是不是 mongodb更适合这种数据的存储。麻烦有经验的同行给些设计思路。

web项目架构问题,B/S结构,mysql数据库

现在客户有一个需求就是他们的产品不固定,比如我现在有一个轮胎产品(有很多型号) 和机油产品(有很多型号),由于这两个需求,我可能得在数据库里面弄一个轮胎表一个机油表(此时项目已经完工了)。 但是过了几个月后店内添加了新的产品并且该产品也会有很多的型号迫不得已又得弄一张表,这种实现如何使得用户能够在功能上实现呢?就是不用开发人员去维护,用户就能够自定义。 我们认为的难题在于项目启动后就算数据库里面可以创建一张新产品表格,但是该表格的实体类和功能该如何动态实现呢?

微信朋友圈技术实现讨论

请教大家一个问题,微博关注好友动态主页,和微信朋友圈动态列表,后端架构设计都是如何实现的? 自己想到的是: 方案一: 1:首选是取我的好友列表,这个有自己的好友列表cache维护,不能直接查询db,考虑到数据量很大情况下的伸缩性必须满足。 2:再根据我的好友ids再去取他们发表的微博或者动态,按照时间排序,这个无疑是拿着user_ids in 动态数据表,这点感觉性能很致命。 方案二: 对比方案一,关系性数据库在面临大数据的时候系能会显得比较疲惫,考虑采用NoSQL,如:Mongodb,HBase ,Redis等产品。 综合对比,倾向选用HBase。Mongodb莫名丢数据时而常有的事情;Redis Master-Slave结构面临单机内存垂直增长受限,Redis 3.0目前支持Cluster,配合Sentinel,貌似能保证sharding nothing又能保证高可用,但是Redis Cluster生产环境没有实用经验。得补充一点就是代码上线前,需要处理已有好友关系的动态数据存储,从mysql考虑用job一次性跑到NoSQL中,这样保证我关注的人,先前发的动态我也能看到。 大家有什么好的建议呢?

微博的关注 和行为的消息推送 是怎么设计的呢?iteye的消息中心是怎么设计的呢 在表里?

微博的关注 和行为的消息推送 是怎么设计的呢?iteye的消息中心是怎么设计的呢 在表里?

如何建立评论回复功能的表结构?

![图片说明](https://img-ask.csdn.net/upload/201508/26/1440563818_704791.jpg) 例如图中的的回复,我在数据库里应该建立哪些字段呢? 求大神科普~

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Python可以这样学(第四季:数据分析与科学计算可视化)

Python可以这样学(第四季:数据分析与科学计算可视化)

组成原理课程设计(实现机器数的真值还原等功能)

实现机器数的真值还原(定点小数)、定点小数的单符号位补码加减运算、定点小数的补码乘法运算和浮点数的加减运算。

javaWeb图书馆管理系统源码mysql版本

系统介绍 图书馆管理系统主要的目的是实现图书馆的信息化管理。图书馆的主要业务就是新书的借阅和归还,因此系统最核心的功能便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、读者图书借阅情况的查询等

土豆浏览器

土豆浏览器可以用来看各种搞笑、电影、电视剧视频

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

Java8零基础入门视频教程

Java8零基础入门视频教程

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

TTP229触摸代码以及触摸返回值处理

自己总结的ttp229触摸代码,触摸代码以及触摸按键处理

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

Ubuntu18.04安装教程

Ubuntu18.04.1安装一、准备工作1.下载Ubuntu18.04.1 LTS2.制作U盘启动盘3.准备 Ubuntu18.04.1 的硬盘空间二、安装Ubuntu18.04.1三、安装后的一些工作1.安装输入法2.更换软件源四、双系统如何卸载Ubuntu18.04.1新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列...

快速排序---(面试碰到过好几次)

原理:    快速排序,说白了就是给基准数据找其正确索引位置的过程.    如下图所示,假设最开始的基准数据为数组第一个元素23,则首先用一个临时变量去存储基准数据,即tmp=23;然后分别从数组的两端扫描数组,设两个指示标志:low指向起始位置,high指向末尾.    首先从后半部分开始,如果扫描到的值大于基准数据就让high减1,如果发现有元素比该基准数据的值小(如上图中18&lt...

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

HTML期末大作业

这是我自己做的HTML期末大作业,花了很多时间,稍加修改就可以作为自己的作业了,而且也可以作为学习参考

Python数据挖掘简易入门

Python数据挖掘简易入门

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

C++语言基础视频教程

C++语言基础视频教程

UnityLicence

UnityLicence

软件测试2小时入门

软件测试2小时入门

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

Python数据分析师-实战系列

系列课程主要包括Python数据分析必备工具包,数据分析案例实战,核心算法实战与企业级数据分析与建模解决方案实战,建议大家按照系列课程阶段顺序进行学习。所有数据集均为企业收集的真实数据集,整体风格以实战为导向,通俗讲解Python数据分析核心技巧与实战解决方案。

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

超详细MySQL安装及基本使用教程

一、下载MySQL 首先,去数据库的官网http://www.mysql.com下载MySQL。 点击进入后的首页如下:  然后点击downloads,community,选择MySQL Community Server。如下图:  滑到下面,找到Recommended Download,然后点击go to download page。如下图:  点击download进入下载页面选择No...

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

爬取妹子图片(简单入门)

安装第三方请求库 requests 被网站禁止了访问 原因是我们是Python过来的 重新给一段 可能还是存在用不了,使用网页的 编写代码 上面注意看匹配内容 User-Agent:请求对象 AppleWebKit:请求内核 Chrome浏览器 //请求网页 import requests import re //正则表达式 就是去不规则的网页里面提取有规律的信息 headers = { 'User-Agent':'存放浏览器里面的' } response = requests.get

web网页制作期末大作业

分享思维,改变世界. web网页制作,期末大作业. 所用技术:html css javascript 分享所学所得

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问