考虑这样一种情况,我定义了一个对象、一组对象,然后是一个将它们链接在一起的表:
CREATE TABLE obj (
id INTEGER PRIMARY KEY,
name text
) ;
CREATE TABLE group (
id INTEGER PRIMARY KEY ;
grpname TEXT
) ;
CREATE TABLE relation (
objid INTEGER,
grpid INTEGER,
PRIMARY KEY (objid, grpid)
) ;
Run Code Online (Sandbox Code Playgroud)
我正在寻找适用的级联删除,所以我添加了外键
ALTER TABLE relation
ADD FOREIGN KEY (objid)
REFERENCES obj(id)
ON DELETE CASCADE ;
ALTER TABLE relation
ADD FOREIGN KEY (grpid)
REFERENCES group(id)
ON DELETE CASCADE ;
Run Code Online (Sandbox Code Playgroud)
到目前为止一切正常。现在假设我想添加对组组的支持。我正在考虑像这样更改关系表:
CREATE TABLE relation_ver1 (
parent INTEGER,
child INTEGER,
PRIMARY KEY (parent, child) …Run Code Online (Sandbox Code Playgroud)