Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sqlite中表示多对多关系_Sqlite_Data Modeling - Fatal编程技术网

在sqlite中表示多对多关系

在sqlite中表示多对多关系,sqlite,data-modeling,Sqlite,Data Modeling,我想在关系模型中表示多对多关系,我有一些疑问 CREATE TABLE TipoDeSeguro ( tipoSeguro TEXT NOT NULL, tipoDeSeguroID INTEGER NOT NULL PRIMARY KEY ) ; CREATE TABLE Cobertura ( nome TEXT NOT NULL, coberturaID INTEGER NOT NULL PRIMARY KEY ) ; 这些是我想要使用多对多关系连接的表

我想在关系模型中表示多对多关系,我有一些疑问

CREATE TABLE TipoDeSeguro
(
    tipoSeguro TEXT NOT NULL,
    tipoDeSeguroID INTEGER NOT NULL PRIMARY KEY
)
;

CREATE TABLE Cobertura
(
    nome TEXT NOT NULL,
    coberturaID INTEGER NOT NULL PRIMARY KEY
)
;
这些是我想要使用多对多关系连接的表

CREATE TABLE JoinTipoDeSeguroToCobertura
(
    coberturaID INTEGER,
    tipoDeSeguroID INTEGER
)
;
这是我的接线台。这两个元组都是主键吗?他们都应该提到他们的主要班级吗


最好的问候

它们应该是外键,如果需要的话,
不能为空

CREATE TABLE JoinTipoDeSeguroToCobertura
(
    coberturaID INTEGER not null,
    tipoDeSeguroID INTEGER not null,

    foreign key(coberturaID) references Cobertura(coberturaID),
    foreign key(tipoDeSeguroID) references TipoDeSeguro(tipoDeSeguroID)
);

而且coberturaID和tipoDeSeguroID可能不应该为NULL,对吗?@persistence记得使用“pragma foreign_keys=on;”启用外键约束然后尝试不为表中的一列插入任何内容,您会得到“外键约束失败”。实际上,可以将NULL插入到
JoinTipoDeSeguroToCobertura
中,因此如果需要,NOT NULL仍然很有用。这两列都应该是主键的一部分。@yeah,它们应该。更新了答案。@CL.更新了答案。