可能在MongoDB中实施的方案

可能在MongoDB中实施的方案,mongodb,Mongodb,我是nosql(MongoDB)的新手。所以我有这个计划: 它仍然可以再增长一点,我被要求在MongoDB中实现 但这有着非常密切的关系 在MongoDB中实现它是可能的还是可取的,或者最好的方法是SQL 有人能帮我吗?建议? 谢谢建议嵌入您希望数量较少的相关实体,请记住mongodb对象占用的空间不能超过16mb 我认为mongo是灵活数据“方案”的完美工具 但是,如果您觉得没有关系数据库不合适,并且您的应用程序非常重要,我不会做实验建议嵌入您希望数量较少的相关实体,请记住mongodb对

我是nosql(MongoDB)的新手。所以我有这个计划:

它仍然可以再增长一点,我被要求在MongoDB中实现

但这有着非常密切的关系

在MongoDB中实现它是可能的还是可取的,或者最好的方法是SQL

有人能帮我吗?建议?
谢谢

建议嵌入您希望数量较少的相关实体,请记住mongodb对象占用的空间不能超过16mb

我认为mongo是灵活数据“方案”的完美工具


但是,如果您觉得没有关系数据库不合适,并且您的应用程序非常重要,我不会做实验

建议嵌入您希望数量较少的相关实体,请记住mongodb对象占用的空间不能超过16mb

我认为mongo是灵活数据“方案”的完美工具


但是,如果您觉得没有关系数据库不合适,并且您的应用程序非常重要,我不会做实验,您要做的是找到一些“相关的东西”,并将它们组合到Mongo中的一个文档中。这是一种权衡,没有一个正确的答案

假设您正在存储患者在医生办公室填写的表单

选项1:您可以将所有内容存储在单个文档中。如果系统不需要与患者的其他记录“连接”,那么这是一个很好的选择。例如,您正在对患者的习惯进行一项简短的调查,但没有将其记录在他们的医疗记录中,也没有随着时间的推移跟踪特定的患者。对于像Mongo这样的文档存储,此选项是“最简单的”。它也是最高的性能,因为每个表单只需要一次磁盘读取。但是,如果患者填写了许多表单,那么在表单的每个副本上存储患者姓名将浪费大量磁盘

选项2:您可以将有关患者的数据“断开”到“患者”集合中,并仅将患者id存储在表单对象上。这在关系数据库中是最简单的,但在Mongo中需要编写额外的代码。(您的ORM在这里可能会有所帮助)。好消息是更容易避免重复的患者记录。但现在它变慢了(因为每次查看表单时它都必须进行客户端数据库连接)

选项3:您可以组合选项1和选项2:将患者存储在患者集合中,但也可以将其数据保存在表单中。这样,例如,你可以说“患者的地址是X,但在填写表格时,他们的地址是Y”。缺点是它需要更多的存储空间

选项4:如果值的数量有限(例如,一家诊所只接待10名患者),您可以在程序中“硬编码”这些值(即从配置文件加载,或在启动时从患者集合加载)。这样,在显示患者时就不会进行客户端数据库连接


对表单中的每件“事情”(医生、药物、患者地址等)重复上述思考练习。如果您发现需要大量收集,最好使用关系数据库。如果您发现很容易将收藏数量保持在较低的水平,那么Mongo可能是一个不错的选择。

您要做的是在Mongo中找到一些“相互关联的东西”,并将它们组合到一个文档中。这是一种权衡,没有一个正确的答案

假设您正在存储患者在医生办公室填写的表单

选项1:您可以将所有内容存储在单个文档中。如果系统不需要与患者的其他记录“连接”,那么这是一个很好的选择。例如,您正在对患者的习惯进行一项简短的调查,但没有将其记录在他们的医疗记录中,也没有随着时间的推移跟踪特定的患者。对于像Mongo这样的文档存储,此选项是“最简单的”。它也是最高的性能,因为每个表单只需要一次磁盘读取。但是,如果患者填写了许多表单,那么在表单的每个副本上存储患者姓名将浪费大量磁盘

选项2:您可以将有关患者的数据“断开”到“患者”集合中,并仅将患者id存储在表单对象上。这在关系数据库中是最简单的,但在Mongo中需要编写额外的代码。(您的ORM在这里可能会有所帮助)。好消息是更容易避免重复的患者记录。但现在它变慢了(因为每次查看表单时它都必须进行客户端数据库连接)

选项3:您可以组合选项1和选项2:将患者存储在患者集合中,但也可以将其数据保存在表单中。这样,例如,你可以说“患者的地址是X,但在填写表格时,他们的地址是Y”。缺点是它需要更多的存储空间

选项4:如果值的数量有限(例如,一家诊所只接待10名患者),您可以在程序中“硬编码”这些值(即从配置文件加载,或在启动时从患者集合加载)。这样,在显示患者时就不会进行客户端数据库连接


对表单中的每件“事情”(医生、药物、患者地址等)重复上述思考练习。如果您发现需要大量收集,最好使用关系数据库。如果你发现很容易保持较低的收藏数量,那么Mongo可能是一个不错的选择。

那么意味着我拥有的方案和复杂的关系在Mongo中不太方便,是吗?在答案上发布了这一点:)那么意味着我拥有的方案和复杂的关系,在mongo这样做不是很方便吗?在答案上贴了这个:)