这个关系是OneToMany还是ManyToMany吗?

时间:2019-03-01 11:20:31

标签: mysql database laravel entity-relationship

我有两个表ARTICLEFAQ(常见问题)。我正在尝试在这两个表之间建立关系,但是我很困惑!

我想要实现的是,这篇文章可以包含许多常见问题解答。因此,应该为此创建数据透视表还是仅在FAQ表中引用FK

我尝试了什么,但不确定以下流程是否正确?

文章表:

CREATE TABLE IF NOT EXISTS `article` (
  `id` int(11) UNSIGNED NOT NULL,
  `title` varchar(255) DEFAULT NULL,
  `slug` varchar(255) DEFAULT NULL,
  `description` longtext NOT NULL,
  PRIMARY KEY (`id`)
);

FAQ表模式:

CREATE TABLE IF NOT EXISTS `eb_faq` (
  `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  `faq_category_id` bigint(20) UNSIGNED DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `question` text NOT NULL,
  `answer` text NOT NULL,
  PRIMARY KEY (`id`)
);

数据透视:

CREATE TABLE IF NOT EXISTS `article_linked_faq` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `article_id` int(11) DEFAULT NULL,
  `faq_id` int(11) DEFAULT NULL,
  `order_by` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
);

2 个答案:

答案 0 :(得分:2)

此架构确实允许一个文章具有多个FAQ,但也允许将一个FAQ链接到多个文章。如果那是您想要的,那就太好了!如果没有,我建议删除数据透视表,然后将article_id添加到eb_faq中。

答案 1 :(得分:-1)

否,您只需要在常见问题表中添加外键,它将创建两个表之间的关系。无需创建第三张表

type