Database design 在Cassandra表中存储未确定的数据

Database design 在Cassandra表中存储未确定的数据,database-design,cassandra,Database Design,Cassandra,我在不同的NoSQL数据库中进行研究,现在一直在理解Cassandra 假设我有两个模型,两个实例的n个字段相同,m个字段不同 { name:"Bob", surname:"Smith", age:31, carName: "toyota" } { name:"Ann", surname:"Cox", position:"Architect" } 因此,这里我有两个模型的name和姓氏,但其他字段可以是任何字段 是否可以在Cassand

我在不同的NoSQL数据库中进行研究,现在一直在理解Cassandra

假设我有两个模型,两个实例的n个字段相同,m个字段不同

{
    name:"Bob",
    surname:"Smith",
    age:31,
    carName: "toyota"
}

{
    name:"Ann",
    surname:"Cox",
    position:"Architect"
}
因此,这里我有两个模型的
name
姓氏
,但其他字段可以是任何字段


是否可以在Cassandra中为此目的设计数据表,或者面向宽列的数据库不适合并更好地使用面向文档的数据库?

如果字段与同一个“实体”相关,则使用所有字段创建一个表,并在插入期间仅指定相关字段。就这么简单。相反,如果它们与不同的实体相关,则创建两个不同的表。

您是否考虑过使用
Map
类型的列来更改值?@ernest_k是的,但是
Map
是否支持嵌套?假设我们在“Car”字段下有一个Car对象no Cassandra的map(例如与DynamoDB不同)不支持嵌套。所以你有两个解决方案:1。可以将序列化字符串(例如JSON)存储为“car”字段。缺点是不能直接修改嵌套属性,例如,不能执行“SET car.model='something'”。选项2:使用地图键中的嵌套特性名称。例如,“car.model”就是关键。通过这种方式,嵌套结构在非嵌套映射上被“展平”。这些字段是相对于实体的,但它们不是确定的。基本上,它可以是任何深度的任何字段集。