在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.更新了答案。