我讀到,在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