2011-01-28 16 views
0

我的視頻列表,我想在一個層次分類這將是一個很好的模式進行分類基於層次對象

category (id, name, parent) 
video (id, name) 
video_category (id, video_id, category_id) 

我的類別應該是這樣的

/A/B/C/[C1, C2] 
/D/E/F/[D1, D2] 

因此,如果我的視頻分類如下

v1 categorized as C1 
v2 categorized as C2 

If I view underneath "C" it should show me both videos. 

這是一個合適的設計?

+0

難道僅僅是一個二級層次結構還是更多?甚至沒有限制?您可能需要格外小心,以確保您可以選擇類別C下的所有視頻(可能是C + C_1 + C_2 + C_1_1等) – 2011-01-28 07:45:54

回答

1

我覺得你的設計很不錯,有一些小評論和一個大但是。

小意見:

  • video_category並不需要一個ID,它的列形成了獨特的複合主鍵已經。在這裏添加一個額外的ID允許您存儲重複的數據。
  • 儘量避免使用'id'作爲列;撥打視頻表「VIDEO_ID」所以它更容易記住它列在其他表,你可以加入它(這變得越來越有用的更大,更復雜的架構變得)

大的id列但是,但MySQL不支持以前的連接,這是一個問題,因爲這是遍歷樹的最直觀的方式。可以通過實現更復雜的模式,或者通過迭代地構建樹遍歷過程而不是遞歸來實現。您可能會發現在以下有用鏈接:

http://forums.mysql.com/read.php?98,38047,38089#msg-38089

相關問題