gpt4 book ai didi

node.js - node-orm2 中的引用键

转载 作者:行者123 更新时间:2023-11-29 12:21:52 27 4
gpt4 key购买 nike

我正在开发基于 node.js 的 REST API,我选择了 postgresql 数据库来存储数据。假设这个数据库有两个表名 UserComment。任何评论都属于一个用户,当我们决定删除一个用户时,他的评论/她必须被删除。所以,我设计了我的表格如下:

CREATE TABLE User(
user_id SERIAL,
username VARCHAR(32) NOT NULL,
password VARCHAR(32) NOT NULL,
CONSTRAINT pk_user PRIMARY KEY (user_id),
CONSTRAINT uq_user UNIQUE (username)
)

CREATE TABLE Comment(
comment_id SERIAL,
user_id INTEGER NOT NULL,
content TEXT NOT NULL,
CONSTRAINT pk_cmnt PRIMARY KEY (comment_id),
CONSTRAINT fk_cmnt FOREIGN KEY (user_id) REFERENCES User(user_id)
ON UPDATE CASCADE ON DELETE CASCADE
)

但我不运行此代码并使用 node-orm2反而。我设计了两个简单的模型来处理这个简单的代码:

var User = db.define('user', {
username: {
type: 'text',
size: 32, // VARCHAR(32)
required: true, // NOT NULL
unique: true // UNIQUE INDEX
},
password: {
type: 'text',
size: 32, // VARCHAR(32)
required: true // NOT NULL
}
}, {
id: 'user_id' //SERIAL
});

var Cmnt = db.define('comment', {
content: {
type: 'text',
required: true // NOT NULL
}
}, {
id: 'comment_id' //SERIAL
});

Cmnt.hasOne('user', User, {required: true}); // CREATE ASSOCIATION KEY

并将数据库与这些模型同步:

db.sync();

现在,我想插入属于 user_id 不存在的用户的新评论。因此,Comment 模型接受它并将该行插入到 comment 表中。

我的问题是,我怎样才能做一些事情,比如 REFERENCE KEYON UPDATE CASCADE ON DELETE CASCADE

提前致谢:)

最佳答案

尝试像这样使用 deferrable:

CREATE TABLE Comment(
comment_id SERIAL,
user_id INTEGER NOT NULL,
content TEXT NOT NULL,
CONSTRAINT pk_cmnt PRIMARY KEY (comment_id),
CONSTRAINT fk_cmnt FOREIGN KEY (user_id) REFERENCES User(user_id)
ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED
)

关于node.js - node-orm2 中的引用键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17971114/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com