ΠΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π²Π΅Π΄Π΅ΡΠ΅ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ° Π²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡ Π·Π° Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π³Π»Π°ΡΠ½ΠΈΠΊ ΠΎΠ΄ Π½ΡΠ»Π°.
- ΠΠ΅Π» 1: Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΠΌΠΊΠ°
ΠΠ΅Π» 2: Π΄Π΅Π» βΠ·Π° ΠΏΡΠΎΡΠΈΡβ
ΠΠ°ΡΠ°ΡΠ° Π±Π°Π·Π° Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠΎΠ»ΠΊΡ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½Π°,
ΠΠ°ΡΠΎΠ°, Π½ΠΈΠ΅ Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΈ Π΄ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΡΠ°Π·Π΄Π²ΠΎΡΡΠ²Π°ΡΠ΅, ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΠΈ Π³Π΅ΠΎ-Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΡΠΊΡ ΡΠ΅ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° Π·Π° ΠΊΠΎΠ»Π° Π²ΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
Π§Π΅ΠΊΠΎΡ 1: ΠΠ΅ΠΊΠΎΠΈ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ
ΠΠΈΠ΅ Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΈ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΡΠ°ΠΊΠΈ Π°ΠΏΡΡΡΠ°ΠΊΡΠ½ΠΎ, ΡΡΠΊΡ ΡΠ΅ Π³ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΠΌΠ΅ Π²ΠΎ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ°
Π ΠΊΠΎΠΈ ΡΠ΅ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π° Π΅Π΄Π΅Π½ Π±ΠΈΠ·Π½ΠΈΡ?.. ΠΠ° Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΎΡ Π½Π° ΠΠ°ΡΠΈΠ»ΠΈΡ, ΡΠ΅Ρ Π½Π° ΠΎΠ΄Π΄Π΅Π»ΠΎΡ Π·Π° ΡΠ°Π·Π²ΠΎΡ.
- βΠΠΈΠΊΠΎΠ»Π°Ρ, Π·Π° ΠΎΠ²Π°Π° Π·Π°Π΄Π°ΡΠ° Π½ΠΈ ΡΡΠ΅Π±Π° Π»Π΅ΠΏΠ΅Π½ΠΊΠ° Π΄Π΅Π½Π΅Ρ!
ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΠΊΠΎΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΈΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΎΠ΄ΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° Π½Π΅ΠΊΠΎΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ. - βΠΠΎΠ»ΡΠ°, ΡΠ΅ ΠΎΠ΄ΠΈΡ Π½Π° ΠΠΎΡΠ° ΠΎΠ²Π°Π° Π²Π΅ΡΠ΅Ρ?
ΠΠ΄Π½ΠΎΡΠ½ΠΎ, Π΄ΡΡΠΈ ΠΈ Π΅Π΄Π΅Π½ ΠΏΠ°Ρ ΡΠΎΠ³ΠΎΠ²ΠΎΡΠ½ΠΈΡΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ°Π°Ρ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΠΌΠΈ. - βΠΠ΅ΡΠ°Ρ, ΠΠΈΠΊΠΎΠ»Π°Ρ, ΠΏΠΎΠ±Π°ΡΠ°Ρ Π³ΠΎ ΡΠ΅Π½ΠΎΠ²Π½ΠΈΠΊΠΎΡ Π·Π° Π½ΠΎΠ²ΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎ ΠΏΡΠΈΠ»ΠΎΠ³ΠΎΡβ.
ΠΠ½Π°ΡΠΈ, Π΅Π΄Π½Π° ΠΏΠΎΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΈΠΌΠ°ΡΠΈ. ΠΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΠΡΠΈΠΊΠ°ΡΠ΅Π½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. - βΠ‘Π΅ΠΌΡΠΎΠ½, ΠΏΠΎΠ³Π»Π΅Π΄Π½ΠΈ ΠΈ ΡΠΈβ.
Π ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ Π²Π»Π΅Π·Π΅ Π²ΠΎ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠ° ΠΊΠΎΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΈΡΠ° ΠΏΠΎΠΊΠ°Π½ΠΈ Π½ΠΎΠ² ΡΠ»Π΅Π½.
ΠΡΠ΄Π΅ Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠΆΠΈΠΌΠ΅ Π½Π° ΠΎΠ²Π°Π° Π»ΠΈΡΡΠ° Π½Π° βΠΎΡΠΈΠ³Π»Π΅Π΄Π½ΠΈβ ΠΏΠΎΡΡΠ΅Π±ΠΈ Π·Π°ΡΠ΅Π³Π°.
ΠΠ΅Π· ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅ΡΠΈΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°ΡΠ° ΡΡΠΎ ΠΌΡ ΡΠ΅ Π΄Π°Π΄Π΅Π½ΠΈ, Π΄ΠΈΠ·Π°ΡΠ½ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ΅ΠΌΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΠΈ ΡΠΎΠ° Π΅ ΡΠ΅ΡΠΈΡΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π§Π΅ΠΊΠΎΡ 2: ΠΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π»ΠΎΠ³ΠΈΡΠΊΠΎ ΠΊΠΎΠ»ΠΎ
ΠΠΎΡΠ΅Π³Π°, ΡΓ¨ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΌΠ½ΠΎΠ³Ρ ΡΠ»ΠΈΡΠ½ΠΎ Π½Π° ΠΊΠΎΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΈΡΠ°ΡΠ° ΠΏΡΠ΅ΠΊΡ Π΅-ΠΏΠΎΡΡΠ° - ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π° Π°Π»Π°ΡΠΊΠ°. ΠΠ°, βΠ°Π»Π³ΠΎΡΠΈΡΠ°ΠΌΡΠΊΠΈβ ΠΌΠ½ΠΎΠ³Ρ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈ Π΅Π΄Π½ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈ, Π·Π°ΡΠΎΠ° Π°Π»Π°ΡΠΊΠΈΡΠ΅ Π·Π° Π½ΠΈΠ²Π½ΠΎ ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΡΡΡΡΠΊΡΡΡΠ½ΠΎ ΡΠ»ΠΈΡΠ½ΠΈ.
ΠΠ° Π³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠΌΠ΅ Π²Π΅ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ΅Π½ΠΈΠΎΡ Π»ΠΎΠ³ΠΈΡΠΊΠΈ Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΡΠΈΡΠ΅ Π½Π° Π΅Π½ΡΠΈΡΠ΅ΡΠΈΡΠ΅. ΠΠ° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ Π½Π°ΡΠΈΠΎΡ ΠΌΠΎΠ΄Π΅Π» ΠΏΠΎΠ»Π΅ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ»ΠΈΠ², ΡΠ΅ ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ Π½Π°ΡΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½Π°ΡΠ° ΠΎΠΏΡΠΈΡΠ° Π·Π° ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°ΡΠ΅
ΠΠΎ Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π»ΠΈΡΠ΅ΡΠΎ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΡ ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΎΡΠΎ βΡΠ΅Π»ΠΎβ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ βΠ½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈβ Π΅Π½ΡΠΈΡΠ΅ΡΠΈ ΠΊΠΎΠΈ ΠΏΠΎΡΡΠΎΡΠ°Ρ Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΎ Π±Π΅Π· Π½Π°ΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°. ΠΠ°ΡΠΎΠ°, Π½ΠΈΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ Π³ΠΈ ΠΏΠ΅ΡΡΠΈΠΏΠΈΡΠ°ΠΌΠ΅ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π° ΠΊΠ°ΠΊΠΎ Π½Π΅ΠΊΠΎΠΈ Π²ΡΡΠΊΠΈ βΠ½Π΅ΠΊΠ°Π΄Π΅β ΠΎΠ΄ UUID.
ΠΠ°ΡΡΡΠ°Ρ Π΄ΠΈΡΠ°Π³ΡΠ°ΠΌΠΈ ΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈ - ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΠ΄ Π»ΡΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΈ ΡΠ΅ ΠΈΠΌ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½Π΅ ΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΡΠΈ Π·Π° ΡΠΈΡΠ°ΡΠ΅ UML/IDEF. ΠΠΎ, Π½Π΅ Π·Π°Π±ΠΎΡΠ°Π²Π°ΡΡΠ΅ Π΄Π° ΡΡΡΠ°ΡΠ΅.
Π§Π΅ΠΊΠΎΡ 3: ΡΠΊΠΈΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ°Π±Π΅Π»Π°ΡΠ°
ΠΠ° ΠΈΠΌΠΈΡΠ°ΡΠ° Π½Π° ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ»ΠΈΡΠ°ΡΠ°βΠ ΡΡΠΊΠΈΡΠ΅β ΠΈΠΌΠΈΡΠ° Π½Π° ΠΏΠΎΠ»ΠΈΡΠ° ΠΈ ΡΠ°Π±Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ΅ΡΠΈΡΠ°Π°Ρ ΠΏΠΎΠΈΠ½Π°ΠΊΡ, Π½ΠΎ ΠΎΠ²Π° Π΅ ΠΏΡΠ°ΡΠ°ΡΠ΅ Π½Π° Π²ΠΊΡΡ. ΠΠ°ΡΠΎΠ° ΡΡΠΎ
ΠΠΈΠ΄Π΅ΡΡΠΈ ΠΌΠ½ΠΎΠ³Ρ Π»ΡΡΠ΅ Π½ΠΈ ΠΏΠΈΡΡΠ²Π°Π°Ρ ΠΏΠΎΡΠ°ΠΊΠΈ ΠΎΠ΄Π΅Π΄Π½Π°Ρ, Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½ΠΈΠ² ΠΌΠΎΠΆΠ΅ ΠΈ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Π°Ρ ΠΎΠ²Π° ΠΎΡΠ»Π°ΡΠ½, ΡΠΎΠ³Π°Ρ Π½Π°ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π°ΡΠ° ΠΎΠΏΡΠΈΡΠ° Π΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ 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
);
Π’Π°Π±Π΅Π»ΠΈ: ΠΠ
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: ΠΠ°ΠΌΠ΅ΡΠ½Π° Π΄Π΅Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠ°
Π Π΄Π²Π°ΡΠ° Π½Π°ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈ ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π±Π΅Π»ΠΈ Π²ΠΎ ΠΊΠΎΠΈ ΡΠ΅ Π΄ΡΠΏΠ»ΠΈΠΊΠ°Ρ Π΄Π΅Π» ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅, Π½Π΅ΠΎΠΏΡ
ΠΎΠ΄Π½ΠΈ Π·Π° ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ Π½Π° Π½ΠΈΠ² ΠΈΠ½Π΄Π΅ΠΊΡΠΈ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΈ Π·Π° Π½Π°ΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π’Π°Π±Π΅Π»ΠΈ: RU
CREATE TABLE "Π Π΅Π΅ΡΡΡΠ‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ"(
"ΠΠ»Π°Π΄Π΅Π»Π΅Ρ"
uuid
, "Π’ΠΈΠΏΠ Π΅Π΅ΡΡΡΠ°"
smallint
, "ΠΠ°ΡΠ°ΠΡΠ΅ΠΌΡ"
timestamp
, "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅"
uuid
, PRIMARY KEY("ΠΠ»Π°Π΄Π΅Π»Π΅Ρ", "Π’ΠΈΠΏΠ Π΅Π΅ΡΡΡΠ°", "Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅")
);
CREATE INDEX ON "Π Π΅Π΅ΡΡΡΠ‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ"("ΠΠ»Π°Π΄Π΅Π»Π΅Ρ", "Π’ΠΈΠΏΠ Π΅Π΅ΡΡΡΠ°", "ΠΠ°ΡΠ°ΠΡΠ΅ΠΌΡ" DESC);
CREATE TABLE "Π£ΡΠ°ΡΡΠ½ΠΈΠΊΠ’Π΅ΠΌΡ"(
"Π’Π΅ΠΌΠ°"
uuid
, "ΠΠ΅ΡΡΠΎΠ½Π°"
uuid
, PRIMARY KEY("Π’Π΅ΠΌΠ°", "ΠΠ΅ΡΡΠΎΠ½Π°")
);
Π’Π°Π±Π΅Π»ΠΈ: ΠΠ
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