【发布时间】:2018-02-28 17:35:05
【问题描述】:
我目前正在处理一个涉及 NoSQL 数据库(具体来说是 Apache Cassandra)的项目的规范阶段。
我猜你们中的许多人都经历过,我必须在规范化和数据复制之间做出权衡。
在我的情况下,我愿意进行大量分析和快速获取数据,以便我的数据将完全去规范化,并且我们跨表复制数据(我们在写入时松动,我们在读取时获得)
考虑这个用户表:
CREATE TABLE users (
user_id UUID,
first_name TEXT,
last_name TEXT,
profile_pic TEXT,
PRIMARY KEY (user_id)
);
字段:first_name, last_name。可以在不同的表上多次使用和复制,有时使用不同的字段名称,例如:creator_first_name, poster_first_name, taker_first_name, contributor_first_name, ... 仅举几例。
这是有趣的部分。
- 我如何在数十个表(族、集合等)中的许多重复数据中保持数据一致性?
- 我是否应该考虑在我的后端添加额外的功能来确保在数据库中编写和更新我的应用程序的重复部分?
- 是通过添加更多代码还是在数据库级别(例如 cassandra 有 Batch 语句)来保持后端级别的一致性更好?
- 是否有社区使用和认可的时间证明模式?
【问题讨论】:
标签: database mongodb cassandra nosql data-modeling