【问题标题】:SQL schema vs NoSQL namespaceSQL 模式与 NoSQL 命名空间
【发布时间】:2020-08-27 07:35:09
【问题描述】:

我是 NoSQL 的新手,想完全理解命名空间的概念以及它与 SQL 模式的比较。 我已经看到了表、行……和它们的 NoSQL 对应物之间的大量有用的类比。

您能帮我理解命名空间吗?

特别是,我想知道如何利用它们分离我的十几个客户的数据?我想防止两者之间的意外信息泄漏,同时仍然使用单个数据库。

【问题讨论】:

  • 澄清一下,我在节点服务器中使用它。

标签: javascript sql database mongodb nosql


【解决方案1】:

这真的取决于你使用的数据库引擎,很难给出一个通用的答案。

理想情况下,如果您真的想隔离数据,您可以使用多个数据库(在 Redis、Redis Enterprise、MongoDB 中)。在这种情况下,您可以确定数据是分开的。但是您说您想使用单个数据库。 (为什么?)

如果您想坚持使用单个数据库,您有多种选择,同样取决于您使用的数据库引擎。

如果您使用的是 Redis:

  • 您可以根据密钥模式使用特定的namespace,例如app:cust-001:orders,并根据密钥名称/模式控制对数据的访问。在 Redis 6.0 中,添加了 ACL(访问控制列表)的概念,允许您基于密钥模式为连接的用户限制对数据的操作/访问。这将使您能够很好地控制数据以及谁可以查看/操作它们

如果您使用的是 MongoDB:

  • 您可以使用多个集合(),例如,在集合名称前加上上下文。
  • 或者您可以使用复合键,其中一个字段将是您的上下文

在这两种情况下,对于 Redis 和 MongoDB,您都在使用业务逻辑创建“数据库”的概念。

如果您提供更多详细信息/示例,社区可能会给您更详细的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-10
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多