【问题标题】:Represent a many to many relationship in sqlite在 sqlite 中表示多对多关系
【发布时间】:2016-04-22 17:36:27
【问题描述】:

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

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
)
;

这是我的连接表。这两个元组都是主键吗?他们都应该引用他们的主类吗?

最好的问候

【问题讨论】:

    标签: sqlite data-modeling


    【解决方案1】:

    如果需要,它们应该是外键和not null

    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 不应该为空,对吧?
    • @Perseverance 记得使用 'pragma foreign_keys = on;' 启用外键约束然后尝试为表的其中一列插入任何内容,您会得到“FOREIGN KEY constraint failed”。
    • 实际上,可以在JoinTipoDeSeguroToCobertura 中插入 NULL,因此如果需要,NOT NULL 仍然有用。并且两列都应该是主键的一部分。
    • @Perseverance 是的,他们应该这样做。更新了答案。
    • @CL。更新了答案。
    猜你喜欢
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多