Sql 如何在Cassandra CQL中创建外键
我试图在Cassandra中复制一个SQL数据库,但是,尽管我在创建表时没有遇到任何问题,但我发现我找不到一个易于理解的示例来演示如何在Cassandra中创建外键 因此,如果我在SQL中有这样的代码:Sql 如何在Cassandra CQL中创建外键,sql,cassandra,foreign-keys,foreign-key-relationship,cql,Sql,Cassandra,Foreign Keys,Foreign Key Relationship,Cql,我试图在Cassandra中复制一个SQL数据库,但是,尽管我在创建表时没有遇到任何问题,但我发现我找不到一个易于理解的示例来演示如何在Cassandra中创建外键 因此,如果我在SQL中有这样的代码: CREATE TABLE COOP_USUARIO ( CI VARCHAR2 (13 BYTE) NOT NULL , CUENTA VARCHAR2 (20 BYTE) NOT NULL , NOMBRE
CREATE TABLE COOP_USUARIO (
CI VARCHAR2 (13 BYTE) NOT NULL ,
CUENTA VARCHAR2 (20 BYTE) NOT NULL ,
NOMBRE VARCHAR2 (50 BYTE) NOT NULL ,
EMAIL VARCHAR2 (255 BYTE) NOT NULL ,
DIRECCION VARCHAR2 (255 BYTE) ,
CIUDAD NUMBER NOT NULL ,
TELEFONO VARCHAR2 (10 BYTE) NOT NULL ,
TIPO_PERSONA NUMBER (1) NOT NULL ,
);
CREATE UNIQUE INDEX COOP_USUARIO_PK ON COOP_USUARIO(
CI ASC
);
ALTER TABLE COOP_USUARIO ADD CONSTRAINT COOP_USUARIO_PK PRIMARY KEY ( CI ) ;
CREATE TABLE COOP_CIUDADES
(
ID NUMBER NOT NULL ,
NOMBRE VARCHAR2 (25 BYTE) NOT NULL ,
PROVINCIA NUMBER NOT NULL
) ;
CREATE UNIQUE INDEX COOP_CIUDADES_PK ON COOP_CIUDADES
(
ID ASC
);
ALTER TABLE COOP_CIUDADES ADD CONSTRAINT COOP_CIUDADES_PK PRIMARY KEY ( ID ) ;
ALTER TABLE COOP_USUARIO ADD CONSTRAINT COOP_USUARIO_CIUDADES_FK FOREIGN KEY ( CIUDAD ) REFERENCES COOP_CIUDADES ( ID ) ;
什么是用于相同目的的卡桑德拉CQL代码?简单的回答是:没有用于相同目的的CQL代码 CQL没有外键的概念,也没有表之间约束的概念,就像不能在表之间进行连接一样 如果需要表之间的约束,则需要在代码中处理此问题。“每个预期查询一个表)。使用这种方法,不需要外键” 这似乎有点误导。完全非规范化存在一致性风险
卡桑德拉。。。确保一致性问题的最佳方法是使用apply batch命令成批执行语句,并使用all或nothing commit,因此,我唯一能做的就是通过代码控制它们?我能不能准备好数据库来做类似的事情?(这次只是好奇)@Sascuash Cassandra和其他非关系数据库没有类似的概念,因为您应该对表进行建模以适应您的查询(例如,每个预期查询一个表)。使用这种方法,不需要外键。感谢您提供的信息;)您正在使用SQL进行思考,并将其转换为noSQL。要掌握noSQL,请使用noSQL进行思考。也就是说,范例是不同的,将SQL模式强行引入noSQL世界只会带来挫折。嗯,只是想帮助您过渡到nosql数据库。即使你有自己的答案,也要记住,为其他人保存信息也是如此,评论也能帮助他们。谢谢你。对不起,如果我之前不礼貌;)