2

私は node.js に基づいて REST API に取り組んでおり、postgresqlデータを保存するデータベースを選択しました。このデータベースに と の 2 つのテーブル名があるUserとしCommentます。AnyCommentは One に属してUserおり、 an を削除する場合はUser、そのCommentの を削除する必要があります。そこで、次のようにテーブルを設計しました。

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代わりに使用します。この単純なコードを処理するために、2 つの単純なモデルを設計しました。

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?

前もって感謝します :)

4

1 に答える 1