Ungaguqulela njani iimfuno zoshishino kwizakhiwo ezithile zedatha usebenzisa umzekelo wokuyila i-database yezithunywa ukusuka ekuqaleni.
- Icandelo 1: ukuyila isakhelo esisisiseko
Icandelo 2: icandelo "lenzuzo"
Isiseko sethu asiyi kuba sikhulu kwaye sisasazwe,
Ngoko ke, asiyi kuchaphazela imiba ye-sharding, ukuphindaphinda kunye ne-geo-distributed systems, kodwa iya kugxininisa kwizisombululo zesekethe ngaphakathi kwedatha.
Inyathelo 1: Ezinye iinkcukacha zeshishini
Asiyi kuyila imiyalezo yethu ngokungafihlisiyo, kodwa siya kuyidibanisa nokusingqongileyo
Kwaye yintoni imisebenzi yeshishini? .. Makhe sijonge umzekelo kaVasily, intloko yesebe lophuhliso.
- "Nikolai, kulo msebenzi sifuna isiqwenga namhlanje!"
Oku kuthetha ukuba imbalelwano inokuqhutywa ngokomxholo wabanye uxwebhu. - “Kolya, uya eDota ngobu busuku?”
Oko kukuthi, isibini esinye se-interlocutors sinokunxibelelana ngaxeshanye kwizihloko ezahlukeneyo. - "Peter, Nikolay, jonga kuncamatheliso kuluhlu lwexabiso leseva entsha."
Ke, umyalezo omnye unokuba nawo abamkeli abaninzi. Kule meko, umyalezo unokuqulatha Iifayile ezincanyathiselwe. - "Semyon, jonga nawe."
Kwaye kufuneka kubekho ithuba lokungena kwimbalelwano ekhoyo mema ilungu elitsha.
Masihlale kolu luhlu lweemfuno "ezicacileyo" okwangoku.
Ngaphandle kokuqonda iinkcukacha ezisetyenzisiweyo zengxaki kunye nezithintelo ezinikezelwe kuyo, yila esebenzayo I-schema yedatha yokuyicombulula phantse ayinakwenzeka.
Inyathelo lesi-2: ISekethe yeNgcaciso encinci
Ukuza kuthi ga ngoku, yonke into isebenza ngokufana kakhulu nembalelwano ye-imeyile - isixhobo seshishini lemveli. Ewe, "i-algorithmically" ezininzi iingxaki zoshishino zifana enye kwenye, ngoko ke izixhobo zokuzisombulula ziya kufana nolwakhiwo.
Masilungise umzobo osele uwufumene wobudlelwane bequmrhu. Ukwenza imodeli yethu ibe lula ukuyiqonda, siya kusebenzisa eyona ndlela yakudala yokubonisa
Kumzekelo wethu, umntu, uxwebhu kunye nebhinari "umzimba" wefayile ngamaqumrhu "angaphandle" akhoyo ngokuzimeleyo ngaphandle kwenkonzo yethu. Ke ngoko, siya kubabona nje kwikamva njengamakhonkco athile “ndaweni ithile” nge-UUID.
Zoba imizobo elula kangangoko - uninzi lwabantu oya kubabonisa kubo ayizo iingcali ekufundeni i-UML / IDEF. Kodwa qiniseka ukuba uyazoba.
Inyathelo lesi-3: Ukuzoba ubume betafile
Malunga netheyibhile kunye namagama ommandlaAmagama "esiRashiya" amasimi kunye neetafile angaphathwa ngendlela eyahlukileyo, kodwa lo mbandela wokunambitha. Ngenxa yokuba
Ekubeni abantu abaninzi besibhalela imiyalezo ngaxeshanye, abanye babo basenokwenza oku ngaphandle kweintanethi, ngoko olona khetho lulula lu sebenzisa ii-UUID njengezazisi hayi kuphela kwizigqeba zangaphandle, kodwa nazo zonke izinto ezingaphakathi kwinkonzo yethu. Ngaphezu koko, zinokuveliswa nakwicala lomxhasi - oku kuya kusinceda sixhase ukuthumela imiyalezo xa uvimba weenkcukacha ungafumanekiyo okwexeshana, kwaye amathuba okungqubana aphantsi kakhulu.
Uyilo lwesakhiwo setheyibhile kwisiseko sedatha yethu siya kujongeka ngolu hlobo:
Iitheyibhile : 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
);
Iitheyibhile: 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
);
Eyona nto ilula xa uchaza ifomathi kukuqalisa "ukukhulula" igrafu yoqhagamshelwano ukusuka kwiitafile ezingabhekiselwanga bona ngokwabo nakubani na.
Inyathelo lesi-4: Fumana iimfuno ezingacacanga
Yiyo loo nto, siyile isiseko sedatha apho ungabhala ngokugqibeleleyo kwaye ngandlela thile ukufunda.
Masizibeke ezihlangwini zabasebenzisi benkonzo yethu - sifuna ukwenza ntoni ngayo?
- Imiyalezo yokugqibela
Oku ihlelwe ngokolandelelwano ubhaliso lwemiyalezo "yeyam" esekwe kwiikhrayitheriya ezahlukeneyo. Apho ndingomnye wabamkeli, apho ndingumbhali, apho bandibhalela khona kwaye andizange ndiphendule, apho abazange baphendule kum, ... - Abathathi-nxaxheba kwimbalelwano
Ngubani ode athathe inxaxheba kule ncoko inde nende?
Isakhiwo sethu sisivumela ukuba sisombulule zombini ezi ngxaki "ngokubanzi," kodwa kungekhona ngokukhawuleza. Ingxaki kukuba yokuhlela ngaphakathi komsebenzi wokuqala ayikwazi ukwenza isalathisi, ilungele ngamnye wabathathi-nxaxheba (kwaye kuya kufuneka ukhuphe zonke iirekhodi), kunye nokusombulula eyesibini oyifunayo. khupha yonke imiyalezo ngalo mxholo.
Imisebenzi engalindelekanga yomsebenzisi inokubeka isibindi ukuwela imveliso.
Inyathelo lesi-5: I-Smart Denormalization
Zombini iingxaki zethu ziya kusonjululwa ngeetheyibhile ezongezelelweyo esiya kuthi kuzo phinda inxalenye yedatha, kuyimfuneko ukwenza kuzo i-indices ezifanelekileyo kwimisebenzi yethu.
Iitheyibhile : RU
CREATE TABLE "РеестрСообщений"(
"Владелец"
uuid
, "ТипРеестра"
smallint
, "ДатаВремя"
timestamp
, "Сообщение"
uuid
, PRIMARY KEY("Владелец", "ТипРеестра", "Сообщение")
);
CREATE INDEX ON "РеестрСообщений"("Владелец", "ТипРеестра", "ДатаВремя" DESC);
CREATE TABLE "УчастникТемы"(
"Тема"
uuid
, "Персона"
uuid
, PRIMARY KEY("Тема", "Персона")
);
Iitheyibhile: 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)
);
Apha sisebenzise iindlela ezimbini eziqhelekileyo ezisetyenziswayo xa kusenziwa iitafile ezincedisayo:
- Ukuphindaphinda iirekhodi
Ukusebenzisa irekhodi yomyalezo wokuqala, senza iirekhodi ezininzi zokulandela kwiintlobo ezahlukeneyo zeerejista kubanini abohlukeneyo - bobabini abathumeli kunye nabamkeli. Kodwa nganye irejista ngoku iwela kwisalathiso - emva kwayo yonke loo nto, kwimeko eqhelekileyo, siya kufuna ukubona kuphela iphepha lokuqala. - Iirekhodi ezizodwa
Ngalo lonke ixesha uthumela umyalezo ngaphakathi kwesihloko esithile, kwanele ukujonga ukuba ungeno olunjalo sele lukhona. Ukuba akunjalo, yongeze “kwisichazi-magama” sethu.
Kwinxalenye elandelayo yenqaku siza kuthetha ngayo
umthombo: www.habr.com