Это моя первая база данных psql. Я использую knex.Вставка или обновление таблицы нарушает ограничение внешнего ключа. PSQL/Knex
У меня есть 3 таблицы: пользователи, пользователи_посты и пользователи_комментариев. Я хочу настроить его так, чтобы пользователи могли публиковать сообщения, а также комментировать сообщения других пользователей.
Когда я семя в users_comments я получаю эту ошибку:
insert or update on table "users_comments" violates foreign key constraint
Как я могу изменить свои таблицы, чтобы получить таблицу users_comment принять внешний ключ POST_ID? Или у меня есть лучший способ настроить комментарии к сообщениям и пользователям?
пользователи таблице
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')