我正在创建一个新闻网站,并且在新闻网站上将有一个类别和子类别管理,我已经创建了表格,也可以管理类别和子类别,唯一的问题是关于我如何将帖子与类别关联我的创建帖子,我应该在我的表格中创建"帖子"创建2列," category_id"和" subcategory_id" ?它看起来不太正确,因为只有通过给出其中一个我应该已经没有一个是catgory和subategory,如果我的类别和子类别列只有一个,我就不会,但在我的情况下它不是。我觉得我如何为帖子,类别和子类别创建我的表格并不是多么可能,在这里我留下我的代码:
define( 'CONCATENATE_SCRIPTS', false );
那么我应该如何将类别或子类别与帖子联系起来呢?这是我正确的做法吗?
答案 0 :(得分:2)
我可以为类别使用自我父母关系。这可以让您创建一个n级别的类别(您可以在源代码上限制它)
Categories:
- id
- name
- parent_id (FK to Categories.id, Null if is a root category)
Posts:
- id
- title
- content
- category_id
所以,例如:
Category [#1, 'Financial', NULL] = Root category Financial
Category [#2, 'Crisis', 1] = Sub-category linked to Financial one
你有另一种解决方案:多对多态关系 您可以创建关联类别和另一个帖子到子类别
的帖子https://laravel.com/docs/5.3/eloquent-relationships#many-to-many-polymorphic-relations
答案 1 :(得分:1)
您可以在Posts表中指定sub_category_id的外键。 表格模式如
文章: -ID; - 标题; - 身体; - sub_category_id
类别: - ID; - 名字;
Category_Subcategory: - ID; - 名称; - category_id;
答案 2 :(得分:0)
如果帖子只有一个类别和一个子类别,则可以使用此结构。您需要将sub_category_id
密钥添加到posts
表。
类别将有许多子类别 - 它的hasMany()
关系
子类别将有很多帖子 - 它也是hasMany()
如果您想要获取某个类别的所有帖子,可以在“类别”和“帖子”之间添加HasManyThrough()
关系。