Nosql 自定义属性-无SQL数据存储
我们希望开发一个应用程序,它需要支持应用程序中不同实体(如用户、项目、文件夹、文档等)的自定义属性 我在谷歌上搜索了一下prima face,似乎没有一个SQL数据库能够满足我们的要求。你认为有什么限制吗?使用非SQL而不是RDBMS的优缺点是什么Nosql 自定义属性-无SQL数据存储,nosql,Nosql,我们希望开发一个应用程序,它需要支持应用程序中不同实体(如用户、项目、文件夹、文档等)的自定义属性 我在谷歌上搜索了一下prima face,似乎没有一个SQL数据库能够满足我们的要求。你认为有什么限制吗?使用非SQL而不是RDBMS的优缺点是什么 有许多非SQL数据库可用-?但是我们没有使用无SQL数据库的经验,也没有找到比较这些无SQL数据库的好文章。有什么建议没有SQL数据存储可以用来实现自定义属性功能 有两种方法可以解决您的问题:一种是列数据库,如Cassandra;或者关系数据库中的名
有许多非SQL数据库可用-?但是我们没有使用无SQL数据库的经验,也没有找到比较这些无SQL数据库的好文章。有什么建议没有SQL数据存储可以用来实现自定义属性功能 有两种方法可以解决您的问题:一种是列数据库,如Cassandra;或者关系数据库中的名称-值对(也称为属性-值对) 首先,Cassandra是一个结构化的键值存储。一个键可以包含多个和可变的属性和值。值或列被分组到列族中。创建Cassandra数据库时,列族是固定的。族类似于逻辑数据模型中的实体或关系数据模型中的表。可以随时将柱添加到族中。因此,柱族的不同实例可以具有不同的柱,这正是您所需要的。此外,列被指定给指定的键,因此在任何给定的族中,不同的键可以具有不同的列数 名称-值对(也称为属性-值对)可以在逻辑数据建模和关系数据库中创建。这可以通过三个相关的实体或表来完成:
- 基本实体(如客户),类似于列族
- “类型”实体,描述属性及其特征,如净值金额
- 一种“值”实体,将属性分配给基础实体的实例并为其分配值李>
我希望这有帮助。如果您要使用NOSQL,我会使用类似Cassandra的东西。如果您使用关系,我将对类型和值进行非规范化(即,折叠为一个)。relational的优点是您已经拥有了它。Cassandra的缺点是你必须学习它,但它是为你想做的事情而构建的。Couchbase对你来说是一个很好的答案,如果你能将你的模型封装成JSON,那么你已经完成了一半。对象可以有任意数量的属性: 产品编号:001 { “名称”:“硬盘驱动器”, “品牌”:“东芝”, ... ... } 要了解一些从RDBMS到Couchbase的简单模式,请访问他们的在线研讨会或访问的一些简单设计模式(不过示例是Ruby)
Couchbase的真正优势是模式灵活性、在商品硬件上的水平可扩展性和速度。在学习了基础知识之后,它更适合敏捷流程,几乎不需要迁移。在企业组织中,它非常有效,因为每个列的修改都需要业务流程和DBA的批准。Couchbase模式的灵活性规避了许多这些问题 无sql数据库的一大优点是它的自由风格:在插入真实数据之前,您永远不会指定“用户、项目、文件夹”之类的列。可以随时添加列 而在RDBMS中,表模式是严格定义的,不能在运行时修改 另一个优点是查询的性能。如果你查询一个用户的所有记录,比如说“Michael”,这是非常有效的,因为数据是按照google命名的大表原则存储的