เชฎเซ‡เชธเซ‡เชจเซเชœเชฐ เชกเซ‡เชŸเชพเชฌเซ‡เช (เชญเชพเช— 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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹