私は 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 KEY
かON UPDATE CASCADE ON DELETE CASCADE
?
前もって感謝します :)