我是使用 nosql (MongoDB) 的新手。所以我有这个方案: http: //prntscr.com/1fpycv
它仍然可以增长一点,我被要求在 MongoDB 中实现。
但这有很大的关系。
在 MongoDB 中实现它是否可能或可取,或者最好的方法是 SQL?
有人可以帮助我吗?建议?谢谢你
我是使用 nosql (MongoDB) 的新手。所以我有这个方案: http: //prntscr.com/1fpycv
它仍然可以增长一点,我被要求在 MongoDB 中实现。
但这有很大的关系。
在 MongoDB 中实现它是否可能或可取,或者最好的方法是 SQL?
有人可以帮助我吗?建议?谢谢你
你想要做的是找到一些“一起去的东西”,并将它们组合到 Mongo 中的一个文档中。这是一种权衡,没有一个正确的答案。
假设您正在存储患者在医生办公室填写的表格。
选项 1:您可以将所有内容存储在一个文档中。如果系统不需要与患者的其他记录“绑定”,这是一个不错的选择。例如,您正在对患者习惯进行简短调查,但没有将其放入他们的医疗记录中,也没有随着时间的推移跟踪特定患者。对于像 Mongo 这样的文档存储,此选项是“最简单的”。它也是最高性能的,因为每个表单只需要一次磁盘读取。但是,如果患者填写了许多表格,您将浪费大量磁盘来存储表格的每个副本上的患者姓名。
选项 2:您可以将有关患者的数据“分解”到“患者”集合中,并且仅将患者 ID 存储在表单对象上。这是关系中最简单的,但在 Mongo 中它需要您编写额外的代码。(您的 ORM 可能会有所帮助)。好消息是更容易避免重复的患者记录。但是现在它变慢了(因为每次查看表单时它都必须进行客户端数据库连接)。
选项 3:您可以结合选项 1 和选项 2:将患者存储在患者集合中,但也可以将其数据保存在表单中。这样,例如,您可以说“患者的地址是 X,但在他们填写表格时,他们的地址是 Y”。缺点是它需要更多的存储空间。
选项 4:如果值数量有限(例如,一家诊所只能看到 10 名患者),您可以在程序中“硬编码”这些值(即从配置文件加载它们,或从 Patient 集合加载它们启动)。这样,您在显示患者时就不会进行客户端数据库连接。
对表单中的每个“事物”(医生、药物、患者地址等)重复上述思考练习。如果您发现需要大量集合,则最好使用关系数据库。如果您发现将集合数量保持在较低水平很容易,那么 Mongo 可能是一个不错的选择。
建议嵌入您期望数量较少的相关实体,请记住 mongodb 对象不能超过 16mb。
我认为 mongo 是灵活数据“方案”的完美工具
http://docs.mongodb.org/manual/core/data-modeling/
但是,如果您对非关系数据库感到不舒服并且您的应用程序非常重要,我不会做实验