1
これは私の最初のpsqlデータベースです。私はknexを使用しています。テーブルの挿入または更新は、外部キー制約に違反します。PSQL/Knex
私はusers、users_posts、users_commentsという3つのテーブルを持っています。私はそれを設定して、ユーザーが物事を投稿し、他のユーザーの投稿にコメントできるようにしたい。
私はこのエラーを取得するusers_commentsシードた場合:
insert or update on table "users_comments" violates foreign key constraint
をどのように私は、外国post_idのキーを受け入れるようにusers_commentテーブルを得るために、私のテーブルを変更することができますか?あるいは、ポストユーザーやユーザーとのコメントを設定する良い方法がありますか?
ユーザテーブル
table.increments();
table.string('username').notNullable().defaultTo('').unique();
table.string('email').notNullable().unique();
table.specificType('hashed_password', 'char(60)').notNullable();
table.timestamps(true, true);
users_postsテーブル
table.increments();
table.integer('user_id')
.notNullable()
.references('id')
.inTable('users')
.onDelete('CASCADE')
.index();
table.string('post_title').notNullable().defaultTo('');
table.string('post_content').notNullable().defaultTo('');
table.timestamps(true, true);
users_commentsテーブル
table.increments();
table.integer('user_id')
.notNullable()
.references('id')
.inTable('users')
.onDelete('CASCADE')
.index();
table.integer('post_id')
.notNullable()
.references('id')
.inTable('users_posts')
.onDelete('CASCADE')
.index();
table.string('comment_content').notNullable().defaultTo('');
table.timestamps(true, true);
users_comments種子:
id: 1,
user_id: 1,
post_id: 1,
comment_content:"...",
created_at: new Date('2016-06-29 14:26:16 UTC'),
updated_at: new Date('2016-06-29 14:26:16 UTC')