Как создать отношение «один ко многим», чтобы в одном блоге было много категорий - PullRequest
0 голосов
/ 08 мая 2019

Я создаю CMS, как WordPress.Я хотел бы иметь возможность назначить несколько категорий в блоге.

Мои таблицы выглядят следующим образом:

Article:
-id
-title
-author
-user_id
-date
-resource link
-content
-status
-featured_image

Categories:
-id
-name

Я знаю, как сделать так, чтобы сообщение в блоге могло иметь одну категорию, но не много.

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Это не 1: много, а много: много - потому что и категория может быть связана со многими статьями.

Иметь таблицу сопоставления с 2 столбцами, article_id и category_id. См. this для советов по индексации таких.

0 голосов
/ 08 мая 2019

Вы можете создать свою базу данных следующим образом. Эта схема позволяет назначать несколько категорий и добавлять несколько изображений, которые можно отслеживать по отдельности.

Logical model of the SQL

CREATE TABLE BlogPost
(
    blogPostNr INT NOT NULL,
    author CHAR(40) NOT NULL,
    categoryNr INT NOT NULL,
    `date` DATETIME NOT NULL,
    status CHAR(5) NOT NULL,
    text VARCHAR(2000) NOT NULL,
    title CHAR(100) NOT NULL,
    userId SMALLINT NOT NULL,
    CONSTRAINT BlogPost_PK PRIMARY KEY(blogPostNr)
);

CREATE TABLE Image
(
    imageNr INT NOT NULL,
    description CHAR(200) NOT NULL,
    picture LONGBLOB NOT NULL,
    source CHAR(60) NOT NULL,
    CONSTRAINT Image_PK PRIMARY KEY(imageNr)
);

CREATE TABLE BlogPostHasImage
(
    blogPostNr INT NOT NULL,
    imageNr INT NOT NULL,
    CONSTRAINT BlogPostHasImage_PK PRIMARY KEY(blogPostNr, imageNr)
);

CREATE TABLE Category
(
    categoryNr INT NOT NULL,
    categoryName CHAR(20) NOT NULL,
    CONSTRAINT Category_PK PRIMARY KEY(categoryNr)
);

ALTER TABLE BlogPost ADD CONSTRAINT BlogPost_FK FOREIGN KEY (categoryNr) REFERENCES Category (categoryNr) ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE BlogPostHasImage ADD CONSTRAINT BlogPostHasImage_FK1 FOREIGN KEY (blogPostNr) REFERENCES BlogPost (blogPostNr) ON DELETE RESTRICT ON UPDATE RESTRICT;

ALTER TABLE BlogPostHasImage ADD CONSTRAINT BlogPostHasImage_FK2 FOREIGN KEY (imageNr) REFERENCES Image (imageNr) ON DELETE RESTRICT ON UPDATE RESTRICT;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...