[Cambios] en la base de datos, elimina en cascada las filas de favorites, comments y authorizations cuando se elimina un artículo

This commit is contained in:
Ricardo García Jiménez 2022-02-18 12:01:15 -06:00
parent 708e6d6dbc
commit 9edcc9288c
2 changed files with 7 additions and 5 deletions

View file

@ -148,6 +148,8 @@ class adminController {
// Actualiza los datos del artículo en la base de datos. // Actualiza los datos del artículo en la base de datos.
if (!empty($update)) { if (!empty($update)) {
$update['modification_date'] = utils::current_date();
$adminModel -> update_article($article['id'], $update); $adminModel -> update_article($article['id'], $update);
if (!empty($update['slug'])) if (!empty($update['slug']))

View file

@ -67,12 +67,12 @@ CREATE TABLE IF NOT EXISTS `articles` (
); );
CREATE TABLE IF NOT EXISTS `authorizations` ( CREATE TABLE IF NOT EXISTS `authorizations` (
`article_id` INT UNSIGNED NOT NULL,
`user_id` INT UNSIGNED NOT NULL, `user_id` INT UNSIGNED NOT NULL,
`article_id` INT UNSIGNED NOT NULL,
`authorization_date` DATETIME(0) NOT NULL, `authorization_date` DATETIME(0) NOT NULL,
CONSTRAINT authorizations_pk PRIMARY KEY(article_id, authorization_date), CONSTRAINT authorizations_pk PRIMARY KEY(article_id, authorization_date),
CONSTRAINT authorizations_article_id_fk FOREIGN KEY(article_id) REFERENCES articles(id) ON UPDATE RESTRICT ON DELETE RESTRICT, CONSTRAINT authorizations_user_id_fk FOREIGN KEY(user_id) REFERENCES users(id) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT authorizations_user_id_fk FOREIGN KEY(user_id) REFERENCES users(id) ON UPDATE RESTRICT ON DELETE RESTRICT CONSTRAINT authorizations_article_id_fk FOREIGN KEY(article_id) REFERENCES articles(id) ON UPDATE CASCADE ON DELETE CASCADE
); );
CREATE TABLE IF NOT EXISTS `comments` ( CREATE TABLE IF NOT EXISTS `comments` (
@ -82,7 +82,7 @@ CREATE TABLE IF NOT EXISTS `comments` (
`comment_date` DATETIME(0) NOT NULL, `comment_date` DATETIME(0) NOT NULL,
CONSTRAINT comments_pk PRIMARY KEY(user_id, comment_date), CONSTRAINT comments_pk PRIMARY KEY(user_id, comment_date),
CONSTRAINT comments_user_id_fk FOREIGN KEY(user_id) REFERENCES users(id) ON UPDATE RESTRICT ON DELETE RESTRICT, CONSTRAINT comments_user_id_fk FOREIGN KEY(user_id) REFERENCES users(id) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT comments_article_id_fk FOREIGN KEY(article_id) REFERENCES articles(id) ON UPDATE RESTRICT ON DELETE RESTRICT CONSTRAINT comments_article_id_fk FOREIGN KEY(article_id) REFERENCES articles(id) ON UPDATE CASCADE ON DELETE CASCADE
); );
CREATE TABLE IF NOT EXISTS `favorites` ( CREATE TABLE IF NOT EXISTS `favorites` (
@ -90,7 +90,7 @@ CREATE TABLE IF NOT EXISTS `favorites` (
`article_id` INT UNSIGNED NOT NULL, `article_id` INT UNSIGNED NOT NULL,
CONSTRAINT favorites_pk PRIMARY KEY(user_id, article_id), CONSTRAINT favorites_pk PRIMARY KEY(user_id, article_id),
CONSTRAINT favorites_user_id_fk FOREIGN KEY(user_id) REFERENCES users(id) ON UPDATE RESTRICT ON DELETE RESTRICT, CONSTRAINT favorites_user_id_fk FOREIGN KEY(user_id) REFERENCES users(id) ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT favorites_article_id_fk FOREIGN KEY(article_id) REFERENCES articles(id) ON UPDATE RESTRICT ON DELETE RESTRICT CONSTRAINT favorites_article_id_fk FOREIGN KEY(article_id) REFERENCES articles(id) ON UPDATE CASCADE ON DELETE CASCADE
); );
INSERT INTO roles(id, name) VALUES(1, 'ADMIN'), (2, 'MODERATOR'), (3, 'USER'); INSERT INTO roles(id, name) VALUES(1, 'ADMIN'), (2, 'MODERATOR'), (3, 'USER');