ืืืฆื ื ืืชื ืืชืจืื ืืจืืฉืืช ืขืกืงืืืช ืืืื ื ื ืชืื ืื ืกืคืฆืืคืืื ืืืืฆืขืืช ืืืืืื ืฉื ืขืืฆืื ืืกื ื ืชืื ืื ืืกื ื'ืจ ืืืคืก.
- ืืืง 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
);
ืืืืืืช: 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: ืื ืืจืืืืืฆืื ืืืื
ืฉืชื ืืืขืืืช ืฉืื ื ืืืคืชืจื ืขื ืืื ืืืืืืช ื ืืกืคืืช ืืื ื ืคืชืจ ืฉืืคืื ืืืง ืืื ืชืื ืื, ืืืจืื ืืื ืืืฆืืจ ืขืืืื ืืืืื ืืืชืืืืื ืืืฉืืืืช ืฉืื ื.
ืืืืืืช: 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