【发布时间】:2015-02-01 14:17:21
【问题描述】:
我读到,在 nosql(例如 cassandra)中,数据通常是非规范化存储的。例如,请参阅此 SO 答案或此 website。
例如,如果您有一个包含员工和部门的列族并且您想要执行查询:select * from Emps where Birthdate = '25/04/1975'
然后,您必须创建一个列族生日_Emps,并将每个员工的 ID 存储为一列。因此,您可以查询birthday_Emps 系列的键“25/04/1975”,并立即获取该日期出生的员工的所有 ID。您甚至可以将员工详细信息非规范化为birthday_Emps,这样您也可以立即获得员工姓名。
真的是这样吗?
每当删除或插入员工时,您也必须从birthday_Emps 中删除该员工。在另一个例子中,有人甚至说有时您会遇到这样的情况,即某个表中的一次删除需要在其他表中进行 100 次删除。这真的很常见吗?
在应用程序代码中进行连接是否常见?您是否有软件可以让您创建预先编写的应用程序来连接来自不同查询的数据?
是否有处理这些数据模型问题的最佳实践、模式等?
【问题讨论】:
标签: join cassandra denormalization database nosql