2010-08-25 81 views
2

我有表問題(mysql與php)它包含問題,類別(多個)和子類(多個)它屬於。爲了簡化,同時節省每一個問題我救分離如下php分面搜索

qid question  catid subcat 
2  question1  2,3,4 5,7 

這樣在逗號類別,我有問題的1000,現在在DB

而與面搜索未來我想篩選出每個類別及以下

cat1(5) 
    subcat1(3) 
    ......... 
cat2(24) 
.......... 

對於這種像樹格式及其相應SUBCAT我只是實現in_array同時尋找部分針對每個問題的每個問題在每個問題的特定問題針對該問題表。該頁面現在變得緩慢。還有文字搜索。

這真的是個好主意或者建議我一些正確的方法。

我是否想單獨分類表?

Thanxs, 戈壁

回答

1

是這樣做的正確方法是有兩個類別和子類別成爲獨立的表:

Table Category 
-------------- 
qid cat-id 


Table Sub_category 
------------------ 
qid sub_cat_id 

這樣你的問題表簡化爲:

Table Question 
--------------- 
id Question 
+0

哦thanxs讓看看別人是什麼建議 – Nithish 2010-08-25 06:27:58

+1

我不認爲你會得到許多不同的答案,這是標準的數據庫規範化:http://en.wikipedia.org/wiki/Database_normalization – 2010-08-25 06:32:06

+0

是的,謝謝@codaddict丹尼斯會按照你的指導去做 – Nithish 2010-08-25 06:35:12

0

將關係信息存儲在單獨的表中的正確方法。所以,可能是你會發現這個結構有用:

question表,包含的問題信息:

CREATE TABLE `question` (`id` int, `question` text); 

表含有類信息:

CREATE TABLE `category` (`id` int, `parent_id` int, `category` tinytext); 

表,包含關係:

CREATE TABLE `question_category` (`question_id` int, `category_id` int); 

有了這個結構,你會有很大的類別深度和大關係號碼容易。