【发布时间】:2020-05-27 01:11:08
【问题描述】:
我正在创建一个论坛类型的网络应用程序,用户可以在其中根据特定主题离开 cmets。有注册和登录步骤。现在,当一个用户帐户被删除时,与该用户相关的所有内容也会被删除,例如 cmets。
有没有办法保留用户生成的 cmets,但删除用户帐户?并将用户名替换为“已删除”?创建comments 表时,我是否只需从迁移步骤中删除ON DELETE CASCADE?
CREATE TABLE users (
id INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
username TEXT NOT NULL UNIQUE,
nickname TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
date_created TIMESTAMPTZ DEFAULT now() NOT NULL
);
CREATE TABLE comments (
id INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
comment TEXT NOT NULL,
date_created TIMESTAMPTZ DEFAULT now() NOT NULL,
date_modified TIMESTAMPTZ DEFAULT now() NOT NULL,
vinmake_id INTEGER
REFERENCES vinmake(id) ON DELETE CASCADE,
dtc_id INTEGER
REFERENCES dtc(id) ON DELETE CASCADE NOT NULL,
user_id INTEGER
REFERENCES users(id) ON DELETE CASCADE NOT NULL
)
谢谢。
【问题讨论】:
标签: sql node.js postgresql foreign-keys sql-delete