首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node-orm2中的引用键

node-orm2中的引用键
EN

Stack Overflow用户
提问于 2013-07-31 20:59:31
回答 1查看 781关注 0票数 2

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

代码语言:javascript
复制
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。我设计了两个简单的模型来处理这个简单的代码:

代码语言:javascript
复制
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

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

代码语言:javascript
复制
db.sync();

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

我的问题是,我如何才能做一些像REFERENCE KEYON UPDATE CASCADE ON DELETE CASCADE这样的事情?

提前感谢:)

EN

回答 1

Stack Overflow用户

发布于 2013-08-19 17:34:21

尝试像这样使用deferrable:

代码语言:javascript
复制
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
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17971114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档