如何在Cassandra CQL中创建外键

Sas*_*ash 6 sql foreign-keys cql foreign-key-relationship cassandra

我正在尝试在Cassandra中复制一个SQL数据库,但是,虽然我创建表没有问题,但我发现我找不到一个易于理解的示例,它显示了如何在Cassandra中创建外键.

那么,如果我在SQL中有这个:

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 ) ;
Run Code Online (Sandbox Code Playgroud)

出于同样目的,什么是Cassndra CQL代码?

mik*_*kea 21

简单的答案是:没有用于同一目的的CQL代码.

CQL没有外键的概念或表之间的任何约束概念,就像你不能在表之间进行连接一样.

如果您需要表之间的约束,那么您需要在代码中处理此问题.

  • @Sascuash Cassandra和其他非关系数据库没有类似这个概念的东西,因为您应该对表进行建模以适合您的查询(如同每个预期查询的一个表).使用这种方法,不需要外键. (2认同)