我读到,在nosql(例如cassandra)数据经常存储非规范化。例如见SO回答或这website。卡桑德拉反规范化数据模型
一个例子是,如果你有员工和部门的一列的家人和你想执行一个查询:select * from Emps where Birthdate = '25/04/1975'
然后,你必须做一个列族birthday_Emps并存储每个员工为一列的ID。因此,您可以查询生日_Emps家庭关键字'25/04/1975',并立即获得该日期出生的所有员工的ID。您甚至可以将员工详细资料标准化为birthday_Emps,以便您立即拥有员工姓名。
这真的是这样做吗?
每当员工被删除或插入时,您将不得不从employee_Emps中删除员工。在另一个例子中,有人甚至说,有时候你有一种情况,某个表中的某个删除需要在其他表中删除100个。这真的很常见吗?
在应用程序代码中进行连接是否很常见?你有软件,允许你创建预先编写的应用程序来连接来自不同查询的数据吗?
是否有处理这些数据模型问题的最佳实践,模式等?
Btw。更新所有非规范化数据是否是手动过程?或者这可以通过cassandra自动完成? – Stefan 2014-12-05 11:05:54
@Stefan这是非规范化模型的缺点,因为没有参照完整性。因此,您需要调整您的DAO以修改更新中的多个表。 – Aaron 2015-01-16 15:38:43