【发布时间】:2015-11-09 14:41:22
【问题描述】:
关于 Cassandra 的大多数文章都关注硬件优势
- 分布在多个节点上
- 性能呈线性增长
- 增加冗余
但是,在我们的办公室,我们正在考虑从 PostgreSQL 迁移到 Cassandra,原因很简单,因为在 Cassandra 中,人们可以像在狂野的西部一样将所有东西都放在桌子上。
因此,我们办公室目前的一般做法是这样的
CREATE TABLE IF NOT EXISTS Person (
id SERIAL PRIMARY KEY,
fname VARCHAR(256)
);
CREATE TABLE IF NOT EXISTS Job (
id SERIAL PRIMARY KEY,
employeeId INT REFERENCES (Person)
);
CREATE TABLE IF NOT EXISTS Car (
id SERIAL PRIMARY KEY,
ownerId INT REFERENCES (Person),
year INT
);
CREATE TABLE IF NOT EXISTS Insurance (
id SERIAL PRIMARY KEY,
carId INT REFERENCES (Car)
);
但我们正在考虑转向 Cassandra 以执行类似以下的操作
CREATE TABLE IF NOT EXISTS Lazy (
id SERIAL PRIMARY KEY,
fname VARCHAR(256),
employeeId INT REFERENCES (Person)
ownerId INT REFERENCES (Person),
year INT
carId INT REFERENCES (Car)
);
我身体里的每个编程纤维都在告诉我这是错误的,但是将我们的前端从面向对象的层次结构转换为 Postgres 的关系模型是一场噩梦,因为我们有大量嵌套的外键。
Cassandra 应该这样使用吗?
【问题讨论】:
标签: database postgresql cassandra