рдореЗрд╕реЗрдВрдЬрд░ рдбреЗрдЯрд╛рдмреЗрд╕ (рднрд╛рдЧ 1): рдмреЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбрд┐рдЭрд╛рдЗрди рдХрд░рдгреЗ

рд╕реБрд░рд╡рд╛рддреАрдкрд╛рд╕реВрди рдореЗрд╕реЗрдВрдЬрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЭрд╛рдЗрди рдХрд░рдгреНрдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВрди рддреБрдореНрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдордзреНрдпреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрдЪреЗ рднрд╛рд╖рд╛рдВрддрд░ рдХрд╕реЗ рдХрд░реВ рд╢рдХрддрд╛.

рдореЗрд╕реЗрдВрдЬрд░ рдбреЗрдЯрд╛рдмреЗрд╕ (рднрд╛рдЧ 1): рдмреЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбрд┐рдЭрд╛рдЗрди рдХрд░рдгреЗ
рдЖрдордЪрд╛ рдЖрдзрд╛рд░ рдЗрддрдХрд╛ рдореЛрдард╛ рдЖрдгрд┐ рд╡рд┐рддрд░рд┐рдд рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА, VKontakte рд╕рд╛рд░рдЦреЗ рдХрд┐рдВрд╡рд╛ Badoo, рдкрд░рдВрддреБ тАЬрдореНрд╣рдгрдЬреЗ рддреЗ рд╣реЛрддреЗтАЭ, рдкрд░рдВрддреБ рддреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрддреЗ - рдХрд╛рд░реНрдпрд╢реАрд▓, рд╡реЗрдЧрд╡рд╛рди рдЖрдгрд┐ рдПрдХрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдлрд┐рдЯ PostgreSQL - рдЬреЗрдгреЗрдХрд░реВрди рддреБрдореНрд╣реА рд╕реЗрд╡реЗрдЪреЗ рд╡реЗрдЧрд│реЗ рдЙрджрд╛рд╣рд░рдг рдмрд╛рдЬреВрд▓рд╛ рдХреБрдареЗрддрд░реА рддреИрдирд╛рдд рдХрд░реВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде.

рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рд╢рд╛рд░реНрдбрд┐рдВрдЧ, рдкреНрд░рддрд┐рдХреГрддреА рдЖрдгрд┐ рднреВ-рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрдВрдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдирд╛ рд╕реНрдкрд░реНрд╢ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рд╕рд░реНрдХрд┐рдЯ рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВ.

рдкрд╛рдпрд░реА 1: рдХрд╛рд╣реА рд╡реНрдпрд╡рд╕рд╛рдп рддрдкрд╢реАрд▓

рдЖрдореНрд╣реА рдЖрдордЪреА рдореЗрд╕реЗрдЬрд┐рдВрдЧ рдЕрдореВрд░реНрддрдкрдгреЗ рдбрд┐рдЭрд╛рдЗрди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреЗ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░реВ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ. рдореНрд╣рдгрдЬреЗрдЪ, рдЖрдордЪреЗ рд▓реЛрдХ "рдлрдХреНрдд рдкрддреНрд░рд╡реНрдпрд╡рд╣рд╛рд░" рдХрд░рдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рдХрд╛рд╣реА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рдПрдХрдореЗрдХрд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдд.

рдЖрдгрд┐ рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдЪреА рдХрд╛рд░реНрдпреЗ рдХреЛрдгрддреА рдЖрд╣реЗрдд?.. рд╡рд┐рдХрд╛рд╕ рд╡рд┐рднрд╛рдЧрд╛рдЪреЗ рдкреНрд░рдореБрдЦ рд╡рд╕рд┐рд▓реАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ рдпрд╛.

  • "рдирд┐рдХреЛрд▓рд╛рдИ, рдпрд╛ рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рдЖрдЬ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдкреЕрдЪрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ!"
    рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдХрд╛рд╣реАрдВрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рдкрддреНрд░рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рджрд╕реНрддрдРрд╡рдЬ.
  • "рдХреЛрд▓реНрдпрд╛, рддреВ рдЖрдЬ рд╕рдВрдзреНрдпрд╛рдХрд╛рд│реА рдбреЛрдЯрд╛рд▓рд╛ рдЬрд╛рдд рдЖрд╣реЗрд╕?"
    рдореНрд╣рдгрдЬреЗрдЪ, рдЗрдВрдЯрд░рд▓реЛрдХреНрдпреВрдЯрд░рдЪреА рдПрдХ рдЬреЛрдбреА рджреЗрдЦреАрд▓ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзреВ рд╢рдХрддреЗ рд╡рд┐рд╡рд┐рдз рд╡рд┐рд╖рдпрд╛рдВрд╡рд░.
  • "рдкреАрдЯрд░, рдирд┐рдХреЛрд▓реЗ, рдирд╡реАрди рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рдХрд┐рдВрдордд рд╕реВрдЪреАрд╕рд╛рдареА рд╕рдВрд▓рдЧреНрдирдХ рдкрд╣рд╛."
    рддрд░, рдПрдХ рд╕рдВрджреЗрд╢ рдЕрд╕реВ рд╢рдХрддреЛ рдЕрдиреЗрдХ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддреЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╕рдВрджреЗрд╢ рдЕрд╕реВ рд╢рдХрддреЛ рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕.
  • "рд╕реЗрдореНрдпреЙрди, рддреВ рдкрдг рдмрдШ."
    рдЖрдгрд┐ рд╡рд┐рджреНрдпрдорд╛рди рдкрддреНрд░рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдЕрд╕рд╛рд╡реА рдирд╡реАрди рд╕рджрд╕реНрдпрд╛рд▓рд╛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рд╛.

"рд╕реНрдкрд╖реНрдЯ" рдЧрд░рдЬрд╛рдВрдЪреНрдпрд╛ рдпрд╛ рдпрд╛рджреАрдд рдЖрдкрдг рд╕рдзреНрдпрд╛ рд░рд╛рд╣реВ рдпрд╛.

рд╕рдорд╕реНрдпреЗрдЪреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реЗ рддрдкрд╢реАрд▓ рдЖрдгрд┐ рддреНрдпрд╛рд╕ рджрд┐рд▓реЗрд▓реНрдпрд╛ рдорд░реНрдпрд╛рджрд╛ рд╕рдордЬреВрди рдШреЗрддрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп, рдбрд┐рдЭрд╛рдЗрди рдкреНрд░рднрд╛рд╡реА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рд╕реЛрдбрд╡рдгреЗ рдЬрд╡рд│рдЬрд╡рд│ рдЕрд╢рдХреНрдп рдЖрд╣реЗ.

рдкрд╛рдпрд░реА 2: рдХрд┐рдорд╛рди рд▓реЙрдЬрд┐рдХ рд╕рд░реНрдХрд┐рдЯ

рдЖрддрд╛рдкрд░реНрдпрдВрдд, рд╕рд░реНрд╡рдХрд╛рд╣реА рдИрдореЗрд▓ рдкрддреНрд░рд╡реНрдпрд╡рд╣рд╛рд░рд╛рд╕рд╛рд░рдЦреЗрдЪ рдХрд╛рд░реНрдп рдХрд░рддреЗ - рдПрдХ рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рд╡реНрдпрд╡рд╕рд╛рдп рд╕рд╛рдзрди. рд╣реЛрдп, "рдЕрд▓реНрдЧреЛрд░рд┐рджрдордиреБрд╕рд╛рд░" рдЕрдиреЗрдХ рд╡реНрдпрд╡рд╕рд╛рдп рд╕рдорд╕реНрдпрд╛ рдПрдХрдореЗрдХрд╛рдВрд╕рд╛рд░рдЦреНрдпрд╛рдЪ рдЖрд╣реЗрдд, рдореНрд╣рдгреВрди рддреНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рдЪреА рд╕рд╛рдзрдиреЗ рд╕рдВрд░рдЪрдирд╛рддреНрдордХрджреГрд╖реНрдЯреНрдпрд╛ рд╕рдорд╛рди рдЕрд╕рддреАрд▓.

рдЕрд╕реНрддрд┐рддреНрд╡ рд╕рдВрдмрдВрдзрд╛рдВрдЪреЗ рдЖрдзреАрдЪ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗрд▓реЗ рддрд╛рд░реНрдХрд┐рдХ рдЖрдХреГрддреАрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░реВрдпрд╛. рдЖрдордЪреЗ рдореЙрдбреЗрд▓ рд╕рдордЬреВрди рдШреЗрдгреЗ рд╕реЛрдкреЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рд╕рд░реНрд╡рд╛рдд рдкреНрд░рд╛рдЪреАрди рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░реВ ER рдореЙрдбреЗрд▓ UML рдХрд┐рдВрд╡рд╛ IDEF рдиреЛрдЯреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдЧреБрдВрддрд╛рдЧреБрдВрддреАрд╢рд┐рд╡рд╛рдп:

рдореЗрд╕реЗрдВрдЬрд░ рдбреЗрдЯрд╛рдмреЗрд╕ (рднрд╛рдЧ 1): рдмреЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбрд┐рдЭрд╛рдЗрди рдХрд░рдгреЗ

рдЖрдордЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, рдлрд╛рдИрд▓рдЪреА рд╡реНрдпрдХреНрддреА, рджрд╕реНрддрдРрд╡рдЬ рдЖрдгрд┐ рдмрд╛рдпрдирд░реА "рдмреЙрдбреА" рд╣реА "рдмрд╛рд╣реНрдп" рд╕рдВрд╕реНрдерд╛ рдЖрд╣реЗрдд рдЬреА рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡реЗрд╢рд┐рд╡рд╛рдп рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗрдд. рддреНрдпрд╛рдореБрд│реЗ, рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рднрд╡рд┐рд╖реНрдпрд╛рдд UUID рджреНрд╡рд╛рд░реЗ "рдХреБрдареЗрддрд░реА" рджреБрд╡реЗ рдореНрд╣рдгреВрди рд╕рдордЬреВ.

рдХрд╛рдврд╛ рдЖрдХреГрддреНрдпрд╛ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд╕реЛрдкреНрдпрд╛ - рддреБрдореНрд╣реА рджрд╛рдЦрд╡рд╛рд▓ рддреЗ рдмрд╣реБрддреЗрдХ рд▓реЛрдХ UML/IDEF рд╡рд╛рдЪрдгреНрдпрд╛рдд рддрдЬреНрдЮ рдирд╛рд╣реАрдд. рдкрдг рдЬрд░реВрд░ рдХрд╛рдврд╛.

рдкрд╛рдпрд░реА 3: рдЯреЗрдмрд▓рдЪреА рд░рдЪрдирд╛ рд░реЗрдЦрд╛рдЯрдгреЗ

рдЯреЗрдмрд▓ рдЖрдгрд┐ рдлреАрд▓реНрдб рдирд╛рд╡рд╛рдВрдмрджреНрджрд▓рдлреАрд▓реНрдб рдЖрдгрд┐ рдЯреЗрдмрд▓реНрд╕рдЪреА "рд░рд╢рд┐рдпрди" рдирд╛рд╡реЗ рд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рд╣рд╛рддрд╛рд│рд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдкрд░рдВрддреБ рд╣реА рдЪрд╡рдЪреА рдмрд╛рдм рдЖрд╣реЗ. рдХрд╛рд░рдг рдж рдЯреЗрдиреНрд╕рд░ рдпреЗрдереЗ рддреЗрдереЗ рдХреЛрдгрддреЗрд╣реА рдкрд░рджреЗрд╢реА рд╡рд┐рдХрд╕рдХ рдирд╛рд╣реАрдд рдЖрдгрд┐ PostgreSQL рдЖрдореНрд╣рд╛рд▓рд╛ рдЪрд┐рддреНрд░рд▓рд┐рдкреАрдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдирд╛рд╡реЗ рджреЗрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рдЬрд░ рддреЗ рдХреЛрдЯ рдордзреНрдпреЗ рдмрдВрдж, рдордЧ рдЖрдореНрд╣реА рд╡рд╕реНрддреВрдВрдирд╛ рдЕрд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдЖрдгрд┐ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирд╛рд╡ рджреЗрдгреНрдпрд╛рд╕ рдкреНрд░рд╛рдзрд╛рдиреНрдп рджреЗрддреЛ рдЬреЗрдгреЗрдХрд░реВрди рдХреЛрдгрддреАрд╣реА рд╡рд┐рд╕рдВрдЧрддреА рдирд╛рд╣реА.
рдмрд░реЗрдЪ рд▓реЛрдХ рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╕рдВрджреЗрд╢ рд▓рд┐рд╣рд┐рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рдЬрдг рд╣реЗ рдХрд░реВ рд╢рдХрддрд╛рдд рдСрдлрд▓рд╛рдЗрди, рддрд░ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ UUID рдЪрд╛ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░ рдХрд░рд╛ рдХреЗрд╡рд│ рдмрд╛рд╣реНрдп рдШрдЯрдХрд╛рдВрд╕рд╛рдареАрдЪ рдирд╛рд╣реА рддрд░ рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡реЗрддреАрд▓ рд╕рд░реНрд╡ рд╡рд╕реНрддреВрдВрд╕рд╛рдареА рджреЗрдЦреАрд▓. рд╢рд┐рд╡рд╛рдп, рддреЗ рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рджреЗрдЦреАрд▓ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд - рдЬреЗрд╡реНрд╣рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рддреНрдкреБрд░рддреЗ рдЕрдиреБрдкрд▓рдмреНрдз рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рд┐рдгреНрдпрд╛рд╕ рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдорджрдд рдХрд░реЗрд▓ рдЖрдгрд┐ рдЯрдХреНрдХрд░ рд╣реЛрдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЕрддреНрдпрдВрдд рдХрдореА рдЖрд╣реЗ.

рдЖрдордЪреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдорд╕реБрджрд╛ рд╕рд╛рд░рдгреА рд░рдЪрдирд╛ рдЕрд╢реА рджрд┐рд╕реЗрд▓:
рдЯреЗрдмрд▓реНрд╕: RU

CREATE TABLE "╨в╨╡╨╝╨░"(
  "╨в╨╡╨╝╨░"
    uuid
      PRIMARY KEY
, "╨Ф╨╛╨║╤Г╨╝╨╡╨╜╤В"
    uuid
, "╨Э╨░╨╖╨▓╨░╨╜╨╕╨╡"
    text
);

CREATE TABLE "╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡"(
  "╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡"
    uuid
      PRIMARY KEY
, "╨в╨╡╨╝╨░"
    uuid
, "╨Р╨▓╤В╨╛╤А"
    uuid
, "╨Ф╨░╤В╨░╨Т╤А╨╡╨╝╤П"
    timestamp
, "╨в╨╡╨║╤Б╤В"
    text
);

CREATE TABLE "╨Р╨┤╤А╨╡╤Б╨░╤В"(
  "╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡"
    uuid
, "╨Я╨╡╤А╤Б╨╛╨╜╨░"
    uuid
, PRIMARY KEY("╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡", "╨Я╨╡╤А╤Б╨╛╨╜╨░")
);

CREATE TABLE "╨д╨░╨╣╨╗"(
  "╨д╨░╨╣╨╗"
    uuid
      PRIMARY KEY
, "╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡"
    uuid
, "BLOB"
    uuid
, "╨Ш╨╝╤П"
    text
);

рдЯреЗрдмрд▓реНрд╕: EN

CREATE TABLE theme(
  theme
    uuid
      PRIMARY KEY
, document
    uuid
, title
    text
);

CREATE TABLE message(
  message
    uuid
      PRIMARY KEY
, theme
    uuid
, author
    uuid
, dt
    timestamp
, body
    text
);

CREATE TABLE message_addressee(
  message
    uuid
, person
    uuid
, PRIMARY KEY(message, person)
);

CREATE TABLE message_file(
  file
    uuid
      PRIMARY KEY
, message
    uuid
, content
    uuid
, filename
    text
);

рдлреЙрд░рдореЕрдЯрдЪреЗ рд╡рд░реНрдгрди рдХрд░рддрд╛рдирд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкреА рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рдХрдиреЗрдХреНрд╢рди рдЖрд▓реЗрдЦ "рдЕрдирд╡рд╛рдЗрдВрдб рдХрд░рдгреЗ" рд╕реБрд░реВ рдХрд░рдгреЗ рд╕рдВрджрд░реНрдн рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреВрди рд╕реНрд╡рддрдГ рдХреЛрдгрд╛рд▓рд╛рдЪ рдирд╛рд╣реА.

рдкрд╛рдпрд░реА 4: рд╕реНрдкрд╖реНрдЯ рдирд╕рд▓реЗрд▓реНрдпрд╛ рдЧрд░рдЬрд╛ рд╢реЛрдзрд╛

рддреЗрдЪ, рдЖрдореНрд╣реА рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рддреБрдореНрд╣реА рдЙрддреНрддрдо рдкреНрд░рдХрд╛рд░реЗ рд▓рд┐рд╣реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдЕрд╕реЛ рд╡рд╛рдЪрд╛.

рдЪрд▓рд╛ рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡реЗрдЪреНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рд╢реВрдЬрдордзреНрдпреЗ рд╕реНрд╡рддрдГрд▓рд╛ рдШрд╛рд▓реВрдпрд╛ - рдЖрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдЪреЗ рдХрд╛рдп рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ?

  • рд╢реЗрд╡рдЯрдЪреЗ рд╕рдВрджреЗрд╢
    рдпрд╛ рдХрд╛рд▓рдХреНрд░рдорд╛рдиреБрд╕рд╛рд░ рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рд▓реЗрд▓реА рд╡рд┐рд╡рд┐рдз рдирд┐рдХрд╖рд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд "рдорд╛рдЭреЗ" рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рдиреЛрдВрджрдгреА. рдЬрд┐рдереЗ рдореА рдкреНрд░рд╛рдкреНрддрдХрд░реНрддреНрдпрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ, рдЬрд┐рдереЗ рдореА рд▓реЗрдЦрдХ рдЖрд╣реЗ, рдЬрд┐рдереЗ рддреНрдпрд╛рдВрдиреА рдорд▓рд╛ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрдгрд┐ рдореА рдЙрддреНрддрд░ рджрд┐рд▓реЗ рдирд╛рд╣реА, рдЬрд┐рдереЗ рддреНрдпрд╛рдВрдиреА рдорд▓рд╛ рдЙрддреНрддрд░ рджрд┐рд▓реЗ рдирд╛рд╣реА, ...
  • рдкрддреНрд░рд╡реНрдпрд╡рд╣рд╛рд░рд╛рддреАрд▓ рд╕рд╣рднрд╛рдЧреА
    рдпрд╛ рд▓рд╛рдВрдмрд▓рдЪрдХ рдЧрдкреНрдкрд╛рдВрдордзреНрдпреЗ рдХреЛрдг рд╕рд╣рднрд╛рдЧреА рд╣реЛрдд рдЖрд╣реЗ?

рдЖрдордЪреА рд░рдЪрдирд╛ рдЖрдореНрд╣рд╛рд▓рд╛ "рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ" рдпрд╛ рджреЛрдиреНрд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рд┐рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдкрд░рдВрддреБ рдкрдЯрдХрди рдирд╛рд╣реА. рд╕рдорд╕реНрдпрд╛ рдЕрд╢реА рдЖрд╣реЗ рдХреА рдкрд╣рд┐рд▓реНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдд рдХреНрд░рдорд╡рд╛рд░реА рд▓рд╛рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЕрдХреНрд╖рдо, рдкреНрд░рддреНрдпреЗрдХ рд╕рд╣рднрд╛рдЧреАрд╕рд╛рдареА рдпреЛрдЧреНрдп (рдЖрдгрд┐ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╕рд░реНрд╡ рд░реЗрдХреЙрд░реНрдб рдХрд╛рдврд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓), рдЖрдгрд┐ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рджреБрд╕рд░реЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рд╕рдВрджреЗрд╢ рдХрд╛рдврд╛ рдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░.

рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЗ рдард│рдХ рдЕрд╕реВ рд╢рдХрддрд╛рдд рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╡рд░ рдХреНрд░реЙрд╕.

рдкрд╛рдпрд░реА 5: рд╕реНрдорд╛рд░реНрдЯ рдбрд┐рдиреЛрд░реНрдорд▓рд╛рдпрдЭреЗрд╢рди

рдЖрдордЪреНрдпрд╛ рджреЛрдиреНрд╣реА рд╕рдорд╕реНрдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреЗрдмрд▓рд╛рдВрджреНрд╡рд╛рд░реЗ рд╕реЛрдбрд╡рд▓реНрдпрд╛ рдЬрд╛рддреАрд▓ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣реА рдХрд░реВ рдбреЗрдЯрд╛рдЪрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рднрд╛рдЧ, рдЖрдордЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА рдпреЛрдЧреНрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдореЗрд╕реЗрдВрдЬрд░ рдбреЗрдЯрд╛рдмреЗрд╕ (рднрд╛рдЧ 1): рдмреЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбрд┐рдЭрд╛рдЗрди рдХрд░рдгреЗ

рдЯреЗрдмрд▓реНрд╕: RU

CREATE TABLE "╨а╨╡╨╡╤Б╤В╤А╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╣"(
  "╨Т╨╗╨░╨┤╨╡╨╗╨╡╤Ж"
    uuid
, "╨в╨╕╨┐╨а╨╡╨╡╤Б╤В╤А╨░"
    smallint
, "╨Ф╨░╤В╨░╨Т╤А╨╡╨╝╤П"
    timestamp
, "╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡"
    uuid
, PRIMARY KEY("╨Т╨╗╨░╨┤╨╡╨╗╨╡╤Ж", "╨в╨╕╨┐╨а╨╡╨╡╤Б╤В╤А╨░", "╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡")
);
CREATE INDEX ON "╨а╨╡╨╡╤Б╤В╤А╨б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╣"("╨Т╨╗╨░╨┤╨╡╨╗╨╡╤Ж", "╨в╨╕╨┐╨а╨╡╨╡╤Б╤В╤А╨░", "╨Ф╨░╤В╨░╨Т╤А╨╡╨╝╤П" DESC);

CREATE TABLE "╨г╤З╨░╤Б╤В╨╜╨╕╨║╨в╨╡╨╝╤Л"(
  "╨в╨╡╨╝╨░"
    uuid
, "╨Я╨╡╤А╤Б╨╛╨╜╨░"
    uuid
, PRIMARY KEY("╨в╨╡╨╝╨░", "╨Я╨╡╤А╤Б╨╛╨╜╨░")
);

рдЯреЗрдмрд▓реНрд╕: EN

CREATE TABLE message_registry(
  owner
    uuid
, registry
    smallint
, dt
    timestamp
, message
    uuid
, PRIMARY KEY(owner, registry, message)
);
CREATE INDEX ON message_registry(owner, registry, dt DESC);

CREATE TABLE theme_participant(
  theme
    uuid
, person
    uuid
, PRIMARY KEY(theme, person)
);

рдпреЗрдереЗ рдЖрдореНрд╣реА рд╕рд╣рд╛рдпреНрдпрдХ рддрдХреНрддреЗ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рджреЛрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрджреНрдзрддреА рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд:

  • рдиреЛрдВрджреА рдЧреБрдгрд╛рдХрд╛рд░
    рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрджреЗрд╢ рд░реЗрдХреЙрд░реНрдб рд╡рд╛рдкрд░реВрди, рдЖрдореНрд╣реА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдорд╛рд▓рдХрд╛рдВрд╕рд╛рдареА - рдкреНрд░реЗрд╖рдХ рдЖрдгрд┐ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдиреЛрдВрджрдгреАрдВрдордзреНрдпреЗ рдЕрдиреЗрдХ рдлреЙрд▓реЛ-рдЕрдк рд░реЗрдХреЙрд░реНрдб рддрдпрд╛рд░ рдХрд░рддреЛ. рдкрдг рдкреНрд░рддреНрдпреЗрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рдЖрддрд╛ рдЗрдВрдбреЗрдХреНрд╕рд╡рд░ рдпреЗрддреЗ - рд╢реЗрд╡рдЯреА, рдПрдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рдмрддреАрдд, рдЖрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рдкрд╣рд┐рд▓реЗ рдкрд╛рди рдкрд╣рд╛рдпрдЪреЗ рдЖрд╣реЗ.
  • рдЕрджреНрд╡рд┐рддреАрдп рд░реЗрдХреЙрд░реНрдб
    рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╖рдпрд╛рд╡рд░ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рддрд╛, рддреЗрд╡реНрд╣рд╛ рдЕрд╢реА рдиреЛрдВрдж рдЖрдзреАрдЪ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ. рдирд╕рд▓реНрдпрд╛рд╕, рдЖрдордЪреНрдпрд╛ "рд╢рдмреНрджрдХреЛрд╢рд╛рдд" рдЬреЛрдбрд╛.

рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рдкреБрдвреАрд▓ рднрд╛рдЧрд╛рдд рдЖрдкрдг рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓реВ рд╡рд┐рднрд╛рдЬрдирд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЖрдордЪреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрдд.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛