我正在爲博客設計數據庫,博客有類別和子類別。 每個博客只有一個類別(可能是類別或子類別)。類別和子類別在相同或不同的表?
我不覺得它是正確存儲在不同的數據庫表中的類別和子類別,所以這個問題是:在相同或不同的表
必須的類別和子類別?
我將如何設計數據庫表來實現這一目標?
我正在爲博客設計數據庫,博客有類別和子類別。 每個博客只有一個類別(可能是類別或子類別)。類別和子類別在相同或不同的表?
我不覺得它是正確存儲在不同的數據庫表中的類別和子類別,所以這個問題是:在相同或不同的表
必須的類別和子類別?
我將如何設計數據庫表來實現這一目標?
慣常做法
Table A: ID, CATEGORY
TABLE B: ID, CATEGORY_ID, SUBCATEGORY
只需使用2個表。
引橋與多個類別
Table A: ID, CATEGORY
TABLE B: ID, SUBCATEGORY
TABLE C: ID, CATEGORY_ID, SUBCATEGORY_ID
使用這個,如果你有子類別添加到多個類別的子類別。
不同的方法
TABLE A: ID, CATEGORY, SUBCATEGORY AS TEXT (SUBCATEGORIES as JSON List. e.g. ["SUB_1", "SUB_2"])
如果你有很多的子類別添加到多個類別。在這種情況下,只需將SUBCATEGORY_ID保存在列表中。 Theen
TABLE A: ID, CATEGORY, SUBCATEGORY AS TEXT (SUBCATEGORIES_ID saved as JSON List. e.g. ["1","2"])
TABLE B: ID, SUBCATEGORY
它只是取決於如果你想在這種情況下子類別後搜索。如果是的話,採取正常的做法。
首先,讓我指出StackExchange site for Database Administrators更適合DB設計問題。
使用每一級表你想使通航。要麼;
嵌套你的(子)類別在一個表中的所有。
這些都有各自的優點/缺點。但是,對於「僅有一個類別(可以是類別或子類別[...])」的情況,「我會說使用多個表格更容易。
然而,由於你的問題還指定您希望只使用一個,你可能要take a look at this previous answer on hierarchical data in relational database。
一些類別沒有孩子,所以搜索可以基於子類別或父類別,是第二種方法在這種情況下更好?如果是的話,他們的另一種方式沒有JSON? – Mathew
我會採取不同的方法。您必須將子分類保存在文本字段中,因此json是可以安全讀寫的格式。 – Kordi