เดฎเต†เดธเดžเตเดšเตผ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต (เดญเดพเด—เด‚ 1): เด…เดŸเดฟเดธเตเดฅเดพเดจ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดธเตเด•เตเดฐเดพเดšเตเดšเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดฎเต†เดธเดžเตเดšเตผ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเด™เตเด™เดจเต† เดฌเดฟเดธเดฟเดจเดธเต เด†เดตเดถเตเดฏเด•เดคเด•เตพ เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดกเดพเดฑเตเดฑ เด˜เดŸเดจเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเด‚.

เดฎเต†เดธเดžเตเดšเตผ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต (เดญเดพเด—เด‚ 1): เด…เดŸเดฟเดธเตเดฅเดพเดจ เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดฏเตเดจเตเดจเต
เดžเด™เตเด™เดณเตเดŸเต† เด…เดŸเดฟเดคเตเดคเดฑ เดตเดฒเตเดคเตเด‚ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเดคเตเดฎเดฒเตเดฒ, VKontakte เดชเต‹เดฒเต† เด…เดฅเดตเดพ เดฌเดพเดฆเต, เดŽเดจเตเดจเดพเตฝ "เด…เด™เตเด™เดจเต†เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต", เดŽเดจเตเดจเดพเตฝ เด…เดคเต เดจเดฒเตเดฒเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต - เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดตเตเด‚ เดตเต‡เด—เดคเดฏเต‡เดฑเดฟเดฏเดคเตเด‚ เด’เดฐเต เดธเต†เตผเดตเดฑเดฟเตฝ เดฏเต‹เดœเดฟเด•เตเด•เตเดจเตเดจเต 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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•