2016-12-17 87 views
0

進出口創造一個新聞網站,並在新聞網站將有一個類別和子類別的管理,我已經創建的表,也可以管理類別和子類別中,唯一的問題是關於如何我會將帖子與創建帖子中的類別關聯起來,我是否應該在表格中創建「帖子」創建2列,「category_id」和「subcategory_id」?它看起來不太正確,因爲只有通過給予其中一個我應該已經沒有哪一個是catgory和子類別,如果我的類別和子類別列只有一個,我不會,但在我的情況下它不是。我覺得我是如何創造我的表上崗,類別和子類別倒不怎麼要高度重視這是我在這裏留下我的代碼:創建類別和子類別系統新聞管理

Posts:´ 
-id; 
- title; 
- body; 

Categories: 
- id; 
- name; 

Category_Subcategory: 
- id; 
- name; 
- category_id; 

那麼我應該如何associante類別或子類別的職位?這是我做的正確方法嗎?

回答

1

我,你可以使用類別自親子關係。這可以讓你創建類別的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 

你有另一種解決方案:多到多-polymorphic-關係 您可以創建一個關係到職位類別和另一個崗位到子類別

https://laravel.com/docs/5.3/eloquent-relationships#many-to-many-polymorphic-relations

1

您可以指定在帖子表格sub_category_id的外鍵。 表模式像

帖子: -id; - title; - body; - sub_category_id

分類: - id; - 名稱;

Category_Subcategory: - ID; - 名稱; - category_id;

0

您可以使用此結構,如果後期將只有一個類別和一個子類別。您需要將sub_category_id密鑰添加到posts表中。

類別將有許多子類別 - 這是hasMany()關係 子類別將有很多文章 - 這是hasMany()

如果你想獲取一個類別的所有帖子,您可以添加類別和崗位之間HasManyThrough()關係。