рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреЗрдбрд╝реЛрдВ рдХреЛ рддреАрди рдореБрдЦреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЖрд╕рдиреНрди рд╕реВрдЪреА, Matherialized Path & Nested Setред рдЬрдм рд╣рдо AL рд╕реЗ NS рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд░рд┐рдХрд░реНрд╕рди (рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╕реНрд▓реАрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди MySQL рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреЗрдбрд╝реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рддрдм:
- AL - рдЬрдм рд╣рдорд╛рд░реЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ parent_id рдХреЗ рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: '' 1 ''
- рдПрдордкреА - рддрддреНрд╡ рдХрд╛ рдкреВрд░рд╛ рд░рд╛рд╕реНрддрд╛ рдЯрд╛рдЗрдк рдкрде рдХреЗ рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ: '' 1.2.5 ''
- NS [ 2 , 3 ] - рдПрдХ рдЬреЛрдбрд╝реА lft рдФрд░ rgt рдХреЙрд▓рдо рдЬреЛ рд╕рднреА рдиреЗрд╕реНрдЯреЗрдб рддрддреНрд╡реЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 9 рддрддреНрд╡реЛрдВ рдХреЗ рдкреЗрдбрд╝ рдХреА рдЬрдбрд╝ рдореЗрдВ '' 1 '' рдХрд╛ рдмрд╛рдпрд╛рдВ рдорд╛рди рд╣реЛрдЧрд╛ рдФрд░ '18' '' рдХреЗ рджрд╛рдИрдВ рдУрд░ред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдХреЙрдорд░реЗрдб рджреЗрдЦреЗрдВ
рдорд┐рдЦреБрд╕ [ рез ] ред рдПрдХ рдЕрдиреНрдп рдХреНрд▓реЛрдЬрд░ рдЯреЗрдмрд▓ рд╡рд┐рдзрд┐ рднреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЙрдорд░реЗрдб рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
resurection , рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдЕрдм рддрдХ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
MySQL рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддрди
MySQL рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рдФрд░ рдлрд┐рд░ рднреА
255 рдХреЗ рд╕реНрддрд░ рддрдХ ред рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ + рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрджреНрднреБрдд рд╣реЛ рд╕рдХрддреА рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
Googling, рд╣рдо рд╕реАрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬрдиреНрдо рдЪрд┐рдиреНрд╣
[ 4 ] рдХреЗ рдмрд┐рдирд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдХрд╛ рд╕рд╡рд╛рд▓ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рдкрд░, рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ ... рд╣рдо рд╕рдлрд▓ рд╣реЛрдВрдЧреЗ! рдиреАрдЪреЗ рд╣рдо рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ рд╕рдорд╛рд░реЛрд╣ rebuild_nested_set_tree, рдЬреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдЬрд╛рдирддреЗ рд╣реБрдП рднреА рдЪреВрдХ рдФрд░ rgt рднрд░рддрд╛ рд╣реИред
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдЯреНрд░реА рдлрд┐рд▓ рдлрдВрдХреНрд╢рди
рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд▓реЗрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреЗрдбрд╝ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ 8 рддрддреНрд╡ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрдирдкреБрдЯ рдкрд░ рдХреБрдЫ рднреА рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдореЗрдВ рдкреЗрдбрд╝реЛрдВ рдХреЗ рдХреБрдЫ рдЖрдИрдбреА рдХреЛрдиреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рддрд░реНрдХ рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВрдЧреЗред рдиреАрдЪреЗ рд╣рдо рдХреЗрд╡рд▓ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╢рд░реАрд░ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ SQLFiddle рдкрд░
рдкреВрд░реНрдг рдкрд╛рда рдФрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ (рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдорд░реЗрдб
рдЧреНрд░реБрдХрд░реВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж)ред
рдлрдВрдХреНрд╢рди рдмреЙрдбреА рд╕реЛрд░реНрд╕ rebuild_nested_set_tree рд╣рдо рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рднрд░реЗ рд╣реБрдП рд╕реАрдорд╛рдУрдВ рдФрд░ рдЕрдкреВрд░реНрдг рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдКрдкрд░реА рдКрдкрд░реА рддрддреНрд╡ рдХреЛ рдкрд╛рддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ рдмрдЪреНрдЪреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЙрди рддрддреНрд╡реЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рджрд╛рдИрдВ рдУрд░ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рдмрдЪреНрдЪреЛрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рд╣рдо рдмрд┐рдирд╛ рд╕реАрдорд╛рдУрдВ рдХреЗ рддрддреНрд╡реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдирд┐рдХрд▓рддреЗред
рдПрдХ рд╕рд░рд▓ рдкреНрд░рд╕реНрддреБрддрд┐ рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреА:
рд╕рдВрджрд░реНрдн
- 10 рджрд┐рд╕рдВрдмрд░, 2008 рдХреЛ рдорд┐рдЦреБрд╕ рджреНрд╡рд╛рд░рд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд , рдореБрдЦреНрдп рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- рдЗрдВрдЯреЗрд▓реАрдЬреЗрдВрдЯ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдореЗрдВ рдЕрдХреНрдЯреВрдмрд░ 20, 2000 (рдЕрдВрдЧреНрд░реЗрдЬреА) рдореЗрдВ рдЬреЛ рд╕реЗрд▓реНрдХреЛ рджреНрд╡рд╛рд░рд╛ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдкреЗрдбрд╝ - рдЖрд╕рдиреНрди рд╕реВрдЪреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд╕реЗрдЯ рдХреНрдпрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рд╕реЗ рдкрд╣рд▓реА рдореЗрдВ рдХреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП (рдЬреЛ рд╕реЗрд▓реНрдХреЛ - рд╢рдмреНрдж рдиреЗрд╕реНрдЯ рд╕реЗрдЯ рдХреЗ рдкрд┐рддрд╛)
- Gijs Van Tulder рджреНрд╡рд╛рд░рд╛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛, рд╕рд╛рдЗрдЯрдкреЙрдЗрдВрдЯ.рдХреЙрдо рдкрд░, 30 рдЕрдкреНрд░реИрд▓, 2003 (рдЕрдВрдЧреНрд░реЗрдЬреА) - "рдмрд╛рдПрдБ" рдФрд░ "рджрд╛рдПрдБ" рдЕрдиреБрдХреНрд░рдорд┐рдд, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░ред
- рдХрд┐рд╕реА рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ... рд╕рдореБрджрд╛рдп wiki & Kristopher Johnson рджреНрд╡рд╛рд░рд╛, stackoverflow.com рдкрд░, 11 рджрд┐рд╕рдВрдмрд░, 2009 (рдЕрдВрдЧреНрд░реЗрдЬреА) - рдХрд┐рд╕реА рднреА рдкреБрдирд░рд╛рд╡рд░реНрддреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд╕реНрдЯреИрдХ рдХреЗ рд╕рд╛рде рдкреБрдирд░рд╛рд╡реГрддреНрдд рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдлрдВрдХреНрд╢рди рдХреЗ рд╕реНрд░реЛрдд garex рджреНрд╡рд╛рд░рд╛ rebuild_nested_set_tree , sqlfiddle.com рдкрд░, 25 рдирд╡рдВрдмрд░, 2012 - рдПрдХ рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЗрдмрд▓ рдмрдирд╛рдирд╛, рдЗрд╕реЗ рдЯреЗрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд░рдирд╛ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрдВрдХреНрд╢рди рдмрдирд╛рдирд╛ред
- рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рджреГрд╢реНрдп: рдЧреИрд░реЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди , рд╕реНрд▓рд╛рдЗрдбрд╢реЗрдпрд░.рдиреЗрдЯ рдкрд░, 25 рдирд╡рдВрдмрд░, 2012 - рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рджреГрд╢реНрдп
рдмрджрд▓рд╛рд╡ рдХрд╛
- рдПрдХ рдФрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЬреЛрдбрд╝рд╛ - рдХреНрд▓реЛрдЬрд░ рдЯреЗрдмрд▓
- рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдореЗрдВ, рдЯрд╛рдЗрдкреЛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ("рдлреНрд▓рд╢" "рдЯреНрд░рд╛рдЙрдЬрд░реНрд╕" рдХреЗ рддрд╣рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)
- рдорд┐рдирдЯ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рд╡рд┐рдХреГрддрд┐ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╢рд░реАрд░ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╕реАрдорд╛ 1 рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рдХреНрд░рдо рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд▓реЗрдХрд┐рди рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рднреА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рд╕рд╣реА рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ - рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╛рдж рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛)