рдмрд╣реБ-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдЕрдзрд┐рдХрд╛рд░ред

рдпрд╣ рдкрд╛рда рдмрд╣реБ-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЗ рдЪрдпрди рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдкрд░рд┐рд╕реАрдорди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкреВрдЫреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд╛рдпрд╛ред

рдЧреБрд░реБ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдореВрд▓реНрдпрд╡рд╛рди рдФрдЪрд┐рддреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВ рдпрд╣ рд╡рд┐рдзрд┐ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рд╕реАрдзреЗ "рдмрд╛рдЗрдирд░реА рдорд╛рд╕реНрдХ" рдЖрдЗрдЯрдо рдкрд░ рдЬрд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╣реИред

рдХрдИ рд╕реЗрд╡рд╛рдПрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ, рдЬрдмрдХрд┐ рд╣реЛрд╕реНрдЯрд░ рд╕реНрд╡рдпрдВ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд░реНрдХрд▓ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдкреЛрд╕реНрдЯ рдпрд╛ рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рд┐рднрд┐рдиреНрди рдЕрдзрд┐рдХрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рддреЗ рд╣реИрдВред



рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЬрд╣рд╛рдВ рдЖрдк рд╕реВрдЪреА рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реБрдЖрддреА рдЪрд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП рдмреНрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдпрд╛ рдлреЛрдЯреЛ рдХрд╛ "рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред

рдкрд╣реБрдБрдЪ рд╕реНрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреГрдердХреНрдХрд░рдгред



рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд░рд╛рдЬреНрдп рдХреЗ рд╕рдВрд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЧреЛрдкрдиреАрдпрддрд╛ рдХреА рдкреНрд░рдгрд╛рд▓реА рд╣реИ, рдЕрд░реНрдерд╛рддреН, рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ рдХреА рдкрд╣реБрдВрдЪ рд╡рд╛рд▓рд╛ рд╡рд┐рд╖рдп рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдЧреЛрдкрдиреАрдпрддрд╛ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ рд╣реИ; рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЧреЛрдкрдиреАрдпрддрд╛ рдХреЗ рд╕реНрддрд░ рд╕реЗ рдХрдо рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕реНрддрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрддрд░ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: "рдкрд░рд┐рдЪрд┐рддреЛрдВ", "рджреЛрд╕реНрдд", "рд░рд┐рд╢реНрддреЗрджрд╛рд░"ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд (рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рд╛рдЗрдЯ habrahabr.ru рдкрд░ "рдХрд░реНрдо" рдХрд╛ рддрдВрддреНрд░

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЪрдпрди рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рд░рд┐рдХреЙрд░реНрдб - рд░рд┐рдХреЙрд░реНрдб
рдЖрдИрдбреА рдкреВрд░реНрдгрд╛рдВрдХ рд░рд┐рдХреЙрд░реНрдб рдЖрдИрдбреА
us_id рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рд▓рд┐рдХ
рд╕реНрддрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдЧреЛрдкрдиреАрдпрддрд╛ рдХрд╛ рд╕реНрддрд░


user_levels - рдкрд╣реБрдВрдЪ рд╕реНрддрд░
us_id рдкреВрд░реНрдгрд╛рдВрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
cor_id рдкреВрд░реНрдгрд╛рдВрдХ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рд╕реНрддрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рд╕реНрддрд░


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЕрдиреБрдордд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

SELECT `records`.`id`

FROM `records`, `level`

WHERE `records`.`us_id`=`user_levels`.`us_id`

AND `records`.`level`<=`users`.`level`

AND `user_levels`.`cor_id`=$us_id;






рдкреНрд░рд╕реНрддреБрдд рдкрджреНрдзрддрд┐ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреЛрд╖ рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рдкрд╣реБрдВрдЪ рд╕реНрддрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рдХреЗ рд╕реАрдорд┐рдд рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЛрд╕реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд░рд┐рдХреЙрд░реНрдб рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдПрд╕реАрдПрд▓



рдПрд╕реАрдПрд▓ рдкрд╣реБрдВрдЪ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдПрдХ рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рднреВрдорд┐рдХрд╛рдУрдВ (рд╕рдореВрд╣реЛрдВ) рдХреЛ рдПрдХ рдордирдорд╛рдирд╛ рд╡рд╕реНрддреБ рдкрд░ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЕрдиреБрдорддрд┐ рдпрд╛ рдЗрдирдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рд╡рд╕реНрддреБ рджреВрд╕рд░реЗ рд╕реЗ рдЕрднрд┐рдЧрдо рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рднреВрдорд┐рдХрд╛ рд╕рджрд╕реНрдпрддрд╛ рдХреА рдЧрдгрдирд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдордХреНрдЦреА рдкрд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

рдЗрд╕реЗ "рд╡рд░реНрдЪреБрдЕрд▓ рд╕рдореВрд╣" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрднрд╛рд╕реА рд╕рдореВрд╣ "рд╕реНрд╡рд╛рдореА" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ user_id = object.owner_id рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдбрд┐рд╕реНрдХ рдХреЛрдЯрд╛ рдХреЛ рдПрдХ рдЖрднрд╛рд╕реА рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЬрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдПрди рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╕реЗ рдХрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред

ACL рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд▓рдЪреАрд▓рд╛ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред рдЖрдк "рдкреНрд░реЛрдЯреЗрдХреНрдЯ рдХреЛрдб" рдкреБрд╕реНрддрдХ рдореЗрдВ ACL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рд▓рд┐рд╕реНрдЯ рдХреЗ рддрдВрддреНрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдЬреЛ Microsoft рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ рдпрд╛ рдЖрдк рдпрджрд┐ рдЖрдк рддреБрд░рдВрдд рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ zend_acl рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, ACL рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреБрдХрд╕рд╛рди рд╣реИрдВ:

  1. Zend_acl рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ, рдЬреЛ рдХрд╣рддрд╛ рд╣реИ: рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рдПрдХреНрд╕реЗрд╕ рдЯреЗрдмрд▓ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд░рдорд╛рдВрдХрдиред

    рдпрд╣ рдореБрдЦреНрдп рдЕрдбрд╝рдЪрди рд╣реИ, рдкрд╣реБрдВрдЪ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛рдлреА nontrivial рд╣реИ рдФрд░ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдХрдард┐рди рд╣реИ, рдЕрд░реНрдерд╛рддред рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдХреНрд░рдордмрджреНрдз рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред

    рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд┐рдХреЙрд░реНрдб рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд░рд┐рдХреЙрд░реНрдб рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдЗрд╕реЗ рдПрд╕реАрдПрд▓ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдкрд╣реБрдВрдЪ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

    рдпрд╛рдиреА рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪреА, рдпрд╛ (рдУрдП) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд░рд┐рдХреЙрд░реНрдб рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реАрдорд╛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рднреАред

    рдирдореВрдирд╛ рд╕реНрддрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕реАрдзреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИред

    рд╣рд╛рдВ, рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдкрдХреЛ рдХреНрд░рдордмрджреНрдз рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рднреА рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд▓рд╛рдЧрдд рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред
  2. ACL рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕реЗ рдореБрдЖрд╡рдЬрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдмрдбрд╝реА рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП ACL рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдХреЗрд▓реЗ рдЕрдВрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджреЗрдВред

    рдЗрд╕рд▓рд┐рдП, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдПрд╕реАрдПрд▓ рддрдВрддреНрд░ рдмреЗрдорд╛рдиреА рд╣реИ, рдЬреНрдпрд╛рджрд╛рддрд░ рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рд╕рд░рд▓ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП (рдмрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдкрдврд╝рдирд╛) рд╕рд░рд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ред



рдЗрд╕рд▓рд┐рдП, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрдИ рд╕рдореВрд╣ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рджреЛрд╕реНрдд", "рд╕рд╣рдХрд░реНрдореА" рдФрд░ "рд░рд┐рд╢реНрддреЗрджрд╛рд░", рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╣ рдХреБрдЫ рд░рд┐рдХреЙрд░реНрдб рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ:



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

рд░рд┐рдХреЙрд░реНрдб - рд░рд┐рдХреЙрд░реНрдб
рдЖрдИрдбреА рдкреВрд░реНрдгрд╛рдВрдХ рд░рд┐рдХреЙрд░реНрдб рдЖрдИрдбреА
us_id рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рд▓рд┐рдХ




record_permissions - рдЬреЛ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ
record_id рдкреВрд░реНрдгрд╛рдВрдХ рд░рд┐рдХреЙрд░реНрдб рдЖрдИрдбреА
рд╕рдореВрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдореВрд╣ рдЖрдИрдбреА


group_members - рд╕рдореВрд╣ рдХреЗ рд╕рджрд╕реНрдп
us_id рдкреВрд░реНрдгрд╛рдВрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рд╕рдореВрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдореВрд╣ рдЖрдИрдбреА


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдЪреБрдиреЗ рдЧрдП рд╣реИрдВ:

SELECT DISTINCT `records`.`id` , `records`.`name`

FROM `records` , `record_permissions` , `group_members`

WHERE `records`.`public` =0



AND `records`.`id` = `record_permissions`.`record_id`

AND `record_permissions`.`group_id` = `group_members`.`group_id`

AND `group_members`.`us_id` =$us_id






рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдЗрд╕ рд░реВрдк рдореЗрдВ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред



рд╕рдорд╛рдзрд╛рди рдХреА рд╕рд╛рджрдЧреА рдФрд░ рд▓рд╛рд▓рд┐рддреНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЗрд╕рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА, рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рдореИрдВ рд╕рдорд╛рдзрд╛рди рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдХреЙрд░реНрдбред



рдПрдХ рд╢реМрдХреАрди рдЪрд╛рд╡рд▓рд╛ рдкрд╛рдардХ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╣рдорд╛рд░реЗ рддрд░реНрдХ рдореЗрдВ рдПрдХ рдЕрдВрддрд░ рджреЗрдЦрд╛ рд╣реИ: рдХреЗрд╡рд▓ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬрд┐рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд░рд┐рдХреЙрд░реНрдб рдЦреБрд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдХреЛрдИ рднреА рдЙрдиреНрд╣реЗрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред

рдЖрдк рдЗрд╕реЗ рд▓реЗрдлреНрдЯрд┐рдиреЗрдВрдЯ рдЬреЙрдЗрди рдХреЗ рд╕рд╛рде рдПрдХ рдХрдард┐рди рдХреНрд╡реЗрд░реА рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЙрдЗрди рдЯреЗрдмрд▓ рдкрд░ рдПрдХ рд╢рд░реНрдд рд╣реИ, рдЬреЛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдмреБрд░рд╛рдИ рд╣реИред

рдЖрдк рдПрдХ рдЖрднрд╛рд╕реА рд╕рдореВрд╣ "рд╣рд░ рдХреЛрдИ" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдХреЙрд░реНрдб рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╡реНрдпрд░реНрде рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд╕реВрд░рдд рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕рдВрдкрддреНрддрд┐ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ: рдЬрдирддрд╛, рдпрд╣ рд╣рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛:



рдмрд╛рдЗрдирд░реА рдорд╛рд╕реНрдХред



рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдВрддрд┐рдо рдкреНрд░рд╢реНрди рдореЗрдВ, рдЦрд░рд╛рдм рд╢рдмреНрдж DISTINCT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЪрдпрди рддреАрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕реЗ рдХрдИ рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд╕рд╛рде, рдпрд╣ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдХреБрдЫ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рддреНрдпрд╛рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдХреБрдЫ рд╕реАрдорд╛ рд╢рд░реНрддреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВ:



рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдШрдЯрд╛рдХрд░ рджреЛ рдХрд░ рджреЗрддреЗ рд╣реИрдВ:

рд░рд┐рдХреЙрд░реНрдб - рд░рд┐рдХреЙрд░реНрдб
рдЖрдИрдбреА рдкреВрд░реНрдгрд╛рдВрдХ рдЕрднрд┐рд▓реЗрдЦ
us_id рдкреВрд░реНрдгрд╛рдВрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рдкрд╣реБрдВрдЪ рдкреВрд░реНрдгрд╛рдВрдХ рдПрдХреНрд╕реЗрд╕ рдорд╛рд╕реНрдХ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ bool рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд┐рдХреЙрд░реНрдб рдзреНрд╡рдЬ


user_references- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдмрдВрдз
us_id рдкреВрд░реНрдгрд╛рдВрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
cor_id рдкреВрд░реНрдгрд╛рдВрдХ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рдореБрдЦреМрдЯрд╛ рдкреВрд░реНрдгрд╛рдВрдХ рд░рд┐рд╢реНрддреЗ рдХрд╛ рдореБрдЦреМрдЯрд╛


рдПрдХреНрд╕реЗрд╕ рдФрд░ рдорд╛рд╕реНрдХ рдмрд╛рдЗрдирд░реА рдорд╛рд╕реНрдХ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд╕реНрд╡рд╛рдореА рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдВрдЪ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВред

рдпрд╛рдиреА рдПрдХ рд╕рдореВрд╣ рдореБрдЦреМрдЯрд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЗрдВрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ 32 рдмрд┐рдЯреНрд╕ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдореВрд╣реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 32 рддрдХ рд╕реАрдорд┐рдд рд╣реИ (рдХрдИ рдмрд┐рдЯреНрд╕ рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред



рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдмрдВрдз :

рдорд┐рддреНрд░ рдкрд░рд┐рд╡рд╛рд░ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
1 0 0 рдорд┐рддреНрд░ 1
0 1 0 рдорд╛рдВ 2
0 0 1 рд╕рд╣рдпреЛрдЧреА 4
1 0 1 рд╕рд╛рдереА рдорд┐рддреНрд░ 5


рд░рд┐рдХреЙрд░реНрдб рддрдХ рдкрд╣реБрдВрдЪ :

рдорд┐рддреНрд░ рдкрд░рд┐рд╡рд╛рд░ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдЕрднрд┐рд▓реЗрдЦ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
0 0 0 рдХреЗрд╡рд▓ рдореИрдВ 0
0 1 0 рдирдорд╕реНрдХрд╛рд░ рдорд╛рдБ! 2
0 0 1 рдХрд╛рдо рдХрд░ рд░рд╣реЗ 4
1 1 0 рдореИрдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ! 3


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдмрд┐рдЯрдХреЙрдЗрди "рдФрд░" рдорд╛рд╕реНрдХ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рддреЗрдЬрд╝ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдЙрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдиреБрд░реЛрдз рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

SELECT `records`.`id` , `records`.`name`

FROM `records` , `user_references`

WHERE `records`.`public` =0

AND `records`.`us_id` = `user_references`.`us_id`



AND `records`.`access` & `user_references`.`mask`

AND `user_references`.`cor_id` =$us_id






рдпрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд╖реЗрддреНрд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛:

SELECT `records`.`id` , `records`.`name`

FROM `records` , `user_references`

WHERE `records`.`public` =0

AND `records`.`us_id` = `user_references`.`us_id`



AND `records`.`access` & `user_references`.`mask`

AND `user_references`.`cor_id` =$us_id

UNION

SELECT `records`.`id` , `records`.`name`

FROM `records`



WHERE `public` =1






рдкрд░реАрдХреНрд╖рдгред



рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рд╕рдорд╛рдзрд╛рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣реЛрдВ рдФрд░ рдмрд┐рдЯ рдорд╛рд╕реНрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХреА рдЧрдИ рдереАред

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рдн рдмрд╣реБрдд рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬреЛ рдХрд┐ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдП рдЧрдП рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рддрд╛ рд╣реИред

рдЕрд▓рдЧ рд╕реЗ, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░, рдПрдХ рдПрд╕реАрдПрд▓ (рдЗрди-рд╣рд╛рдЙрд╕ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИред

рд╕реНрдерд┐рддрд┐ рдирдХрд╛рдм (рд╕реЗрдХ) рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣реЛрдВ (рд╕реЗрдХрдВрдб) рджреНрд╡рд╛рд░рд╛ рд╕рдордп рдкрд░ рдЧрддрд┐
MySql 4, 30,000 рд░рд┐рдХреЙрд░реНрдб, 100 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, 1000 рд▓рд┐рдВрдХ, UNION .режреж,реирезрел 0.0107 4.98
MySql 4, 500,000 рд░рд┐рдХреЙрд░реНрдб, 10,000 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, 100,000 рд▓рд┐рдВрдХ .режреж,резреорел 0.1346 72.76
MySql 4, 500,000 рд░рд┐рдХреЙрд░реНрдб, 10,000 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, 100,000 рдпреВрдирд┐рдЕрди рд▓рд┐рдВрдХ .режреж,реирезрел 0.1383 64.33
MySql 5, 500,000 рд░рд┐рдХреЙрд░реНрдб, 10,000 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, 100,000 рд▓рд┐рдВрдХ .режреж,резрейрел 0.169 125.19


рдирдореВрдирд╛рдХрд░рдг рд╕рдордп 4 рд╕реЗ рдЕрдзрд┐рдХ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рд╣реИред рдЕрдиреНрдп рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдереЗ, рдРрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ 10 рджреЛрд╕реНрдд рдФрд░ 10 "рджреЛрд╕реНрддреЛрдВ рдХреЗ рд▓рд┐рдП" рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдереАрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдирдореВрдиреЗ рдХреА рджрд░ рдкрд░рд┐рдорд╛рдг рдХреЗ 2 рдЖрджреЗрд╢реЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ, рдЬрдмрдХрд┐ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рд╣реИ, рдирдореВрдирд╛ рджрд░ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдмрд╣реБрдд рдХрдо рдирд┐рд░реНрднрд░ рд╣реИ

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЛ рд╕рдореВрд╣реЛрдВ ("рдорд┐рддреНрд░" рдФрд░ "рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ") рдореЗрдВ рд╣реИ, рддреЛ рдпрд╣ рдореБрдЦреМрдЯрд╛ рдХреЗ рд╕рд╛рде рдирдореВрдирд╛ рдЧрддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╕рдореВрд╣реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЪрдпрди (DISTINCT рд╕рдХреНрд░рд┐рдп рд╣реИ) рдХрдИ рд╕реЗрдХрдВрдб (рдбрд░рд╛рд╡рдиреА рдбрд░рд╛рд╡рдиреА) рд▓реЗрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд┐рд╡рдЯ рдЯреЗрдмрд▓ рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред

рдкрд░рд┐рдгрд╛рдоред



рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдЙрдкрдХрд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рднреЗрджрднрд╛рд╡ рдХреЗ рдПрд╕реАрдПрд▓ рдпрд╛ рдЕрдиреНрдп рдЬрдЯрд┐рд▓ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдЖрдЧреНрд░рд╣ рдирд╣реАрдВ рдХрд░рддрд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдпрджрд┐ рдЖрдк рдЕрднрд┐рдЧрдо рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдкрд░рд┐рд╕реАрдорди рдХреЗ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХреЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╣реИрдВ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред



All Articles