Mar a nì thu eadar-theangachadh air riatanasan gnìomhachais gu structaran dàta sònraichte a’ cleachdadh eisimpleir de bhith a’ dealbhadh stòr-dàta teachdaire bhon fhìor thoiseach.
- Pàirt 1: dealbhadh a 'bhun-fhrèam

Cha bhi ar bunait cho mòr agus cho sgaoilte, no , ach “mar sin a bha e”, ach bha e math - obrachail, luath agus freagarrach air aon fhrithealaiche PostgreSQL - gus an urrainn dhut eisimpleir air leth den t-seirbheis a chleachdadh an àiteigin air an taobh, mar eisimpleir.
Mar sin, cha bhith sinn a’ beantainn ri cùisean sharding, ath-riochdachadh agus siostaman geo-sgaoilte, ach cuiridh sinn fòcas air na fuasglaidhean sgemataigeach taobh a-staigh an stòr-dàta.
Ceum 1: Beagan fiosrachaidh mu ghnìomhachas
Cha bhith sinn a’ dealbhadh ar teachdaireachdan gu h-eas-chruthach, ach an àite sin ga thoirt a-steach don àrainneachd. ’S e sin, chan e a-mhàin gu bheil ar daoine a’ “cur teachdaireachdan gu chèile”, ach a’ conaltradh ri chèile ann an co-theacsa fuasgladh dhuilgheadasan gnìomhachais sònraichte.
Dè an seòrsa ghnìomhan a tha romh ghnìomhachas? Seallaidh sinn air eisimpleir Vasily, ceannard na roinne leasachaidh.
- "Nikolai, feumaidh am pasgan seo a bhith air a chàradh an-diugh!"
Tha seo a’ ciallachadh gum faodar an conaltradh a dhèanamh ann an co-theacsa cuid de sgrìobhainn. - "Kolya, a bheil thu a' dol gu Dota a-nochd?"
Tha seo a’ ciallachadh gum faod eadhon aon phaidhir de luchd-labhairt conaltradh a dhèanamh aig an aon àm. air diofar chuspairean. - "Peadar, Nikolai, thoiribh sùil anns a' cheangal airson liosta phrìsean an fhrithealaiche ùir."
Mar sin, faodaidh aon teachdaireachd a bhith ann iomadh neach-faighinnDh’fhaodadh gum bi am brath seo a’ gabhail a-steach faidhlichean ceangailte. - "Semyon, thoir sùil ort fhèin cuideachd."
Agus bu chòir roghainn a bhith ann airson cur ri conaltradh a tha ann mar-thà. cuireadh a thoirt do bhall ùr.
Stadamaid an-dràsta air an liosta seo de fheumalachdan "follaiseach".
Às aonais tuigse air mion-fhiosrachadh an obair agus na cuingeadan a chuireas i an sàs, tha e duilich dealbhadh èifeachdach Tha e cha mhòr do-dhèanta sgeama an stòr-dàta fhuasgladh.
Ceum 2: Cuairt Lòdaig as ìsle
Gu ruige seo, tha an siostam glè choltach ri conaltradh post-d – inneal gnìomhachais traidiseanta. Gu dearbh, tha mòran ghnìomhan gnìomhachais coltach ri chèile a thaobh algairim, agus mar sin bidh na h-innealan airson an fhuasgladh coltach ri chèile a thaobh structar.
Glacamaid an diagram loidsigeach a thig às a sin de dhàimhean eintiteas. Gus tuigse nas fhasa a thoirt seachad, cleachdaidh sinn an riochdachadh as prìomhadaiche. às aonais nan duilgheadasan a tha an lùib notaichean UML no IDEF:

Anns an eisimpleir againne, tha an neach, an sgrìobhainn, agus am faidhle dà-chànanach "corp" nan eintiteasan "taobh a-muigh" a tha ann gu neo-eisimeileach às aonais ar seirbheis. Mar sin, làimhsichidh sinn iad mar iomraidhean "gu àiteigin" le UUID.
Tarraing sgeamaichean cho sìmplidh 's a ghabhas — Chan eil a’ mhòr-chuid de na daoine a sheallas tu dhaibh nan eòlaichean ann a bhith a’ leughadh UML/IDEF. Ach — bi cinnteach gun dèan thu dealbh.
Ceum 3: Dealbhaich structar a’ bhùird
Mu dheidhinn ainmean chlàran is raointeanFaodar dèiligeadh ri ainmean achaidhean is bùird “Ruiseanach” ann an dòigh eadar-dhealaichte, ach tha seo na chùis blas. Air sgàth gu bheil an chan eil luchd-leasachaidh cèin ann, agus leigidh PostgreSQL leinn ainmean a thoirt seachad eadhon ann an hieroglyphs, ma tha dùinte ann an luachan, an uairsin is fheàrr leinn nithean ainmeachadh gu soilleir agus gu soilleir gus nach bi eadar-dhealachaidhean ann.
Leis gu bheil tòrr dhaoine againn a’ sgrìobhadh teachdaireachdan aig an aon àm, faodaidh cuid dhiubh seo a dhèanamh eadhon ann am modh far-loidhne, an uairsin is e an roghainn as sìmplidh cleachd UUIDan mar chomharraichearan Chan ann a-mhàin airson eintiteasan taobh a-muigh, ach airson a h-uile nì taobh a-staigh na seirbheis againn. A bharrachd air an sin, faodar an gineadh eadhon air taobh an neach-dèiligidh—cuidichidh seo sinn le bhith a’ cumail a’ dol le teachdaireachdan rè ùine ghoirid far nach eil stòr-dàta ri fhaighinn, agus tha an coltachd gum bi bualaidhean ann gu math ìosal.
Bidh structar garbh nan clàran san stòr-dàta againn coltach ri seo:
Clàran: 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
);Clàran: 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
);Is e an dòigh as fhasa air cruth a mhìneachadh tòiseachadh air graf nan ceanglaichean a “dhì-cheangal”. bho chlàran nach eil air an ainmeachadh sinn fhèin do dhuine sam bith.
Ceum 4: Comharraich feumalachdan nach eil follaiseach
Sin agad e, tha sinn air stòr-dàta a dhealbhadh as urrainn dhut sgrìobhadh thuige agus air dòigh air choireigin leugh.
Cuireamaid sinn fhèin ann am brògan neach-cleachdaidh na seirbheis againn—dè a bhiodh sinn airson a dhèanamh leis?
- Teachdaireachdan mu dheireadh
seo air a sheòrsachadh gu cronaigeach Clàr de na teachdaireachdan "agam" stèidhichte air diofar shlatan-tomhais. Càite a bheil mi nam aon de na luchd-faighinn, càite a bheil mi nam ùghdar, càite an deach fios a chur thugam ach nach do fhreagair mi, càite nach deach freagairt a thoirt dhomh, … - Com-pàirtichean na conaltraidh
Cò a tha a’ gabhail pàirt anns a’ chòmhradh fhada, fhada seo idir?
Leigidh an structar againn leinn an dà dhuilgheadas seo fhuasgladh "san fharsaingeachd," ach chan ann gu sgiobalta. Is e an duilgheadas, airson seòrsachadh taobh a-staigh a’ chiad dhuilgheadas, gun chomas clàr-amais a chruthachadh, freagarrach do gach aon de na com-pàirtichean (agus feumar na clàran uile a thoirt a-mach), agus gus an dàrna fear fhuasgladh tha e riatanach tarraing a-mach a h-uile teachdaireachd air cuspair.
Faodaidh gnìomhan cleachdaiche gun dùil dùbhlan mòr a chruthachadh. tar-chur air cinneasachd.
Ceum 5: Dì-àbhaisteachadh Glic
Thèid an dà dhuilgheadas againn fhuasgladh le clàran a bharrachd, a nì sinn pàirt dhùblaichte den dàta, riatanach airson clàran-amais a chruthachadh orra a tha freagarrach airson ar gnìomhan.

Clàran: RU
CREATE TABLE "РеестрСообщений"(
"Владелец"
uuid
, "ТипРеестра"
smallint
, "ДатаВремя"
timestamp
, "Сообщение"
uuid
, PRIMARY KEY("Владелец", "ТипРеестра", "Сообщение")
);
CREATE INDEX ON "РеестрСообщений"("Владелец", "ТипРеестра", "ДатаВремя" DESC);
CREATE TABLE "УчастникТемы"(
"Тема"
uuid
, "Персона"
uuid
, PRIMARY KEY("Тема", "Персона")
);Clàran: 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)
);An seo, chleachd sinn dà dhòigh-obrach àbhaisteach a thathas a’ cleachdadh nuair a thathar a’ cruthachadh chlàran taice:
- Iomadachadh chlàran
Bidh sinn a’ gineadh iomadh clàr leanmhainn airson gach clàr teachdaireachd tùsail ann an diofar sheòrsaichean chlàran airson diofar shealbhadairean—an neach a chuir an teachdaireachd agus an neach a gheibh e. Ach, tha gach aon de na clàran a-nis a’ fuireach san chlàr-amais, oir ann an cùis àbhaisteach, cha bhith sinn airson ach a’ chiad duilleag fhaicinn. - Neo-àbhaisteachd chlàran
A h-uile uair a chuireas tu teachdaireachd taobh a-staigh cuspair sònraichte, chan fheum thu ach sgrùdadh a dhèanamh a bheil an inntrigeadh ann mu thràth. Mura h-eil, cuiridh tu ris an "fhaclair" agad e.
Anns an ath phàirt den artaigil bruidhnidh sinn mu dheidhinn a-steach do structar ar stòr-dàta.
Source: www.habr.com
