{"id":96465,"date":"2020-10-12T07:42:27","date_gmt":"2020-10-12T05:42:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/eta-baza-dannyh-v-ogne"},"modified":"2020-10-12T07:42:27","modified_gmt":"2020-10-12T05:42:27","slug":"eta-baza-dannyh-v-ogne","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eta-baza-dannyh-v-ogne","title":{"rendered":"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026\" src=\"\/wp-content\/uploads\/2020\/10\/e4e39a7039dad14422fd83c05f114d6f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nM\u00eb lejoni t\u00eb tregoj nj\u00eb histori teknike.<\/p>\n<p>Shum\u00eb vite m\u00eb par\u00eb, un\u00eb zhvillova nj\u00eb aplikacion me funksione bashk\u00ebpunimi t\u00eb integruara. Ishte nj\u00eb eksperiment i p\u00ebrshtatsh\u00ebm, n\u00eb t\u00eb cilin u shfryt\u00ebzua potenciali i plot\u00eb i React t\u00eb hersh\u00ebm dhe CouchDB. Ai sinkronizonte t\u00eb dh\u00ebnat n\u00eb koh\u00eb reale p\u00ebrmes JSON. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Operational_transformation\">OT<\/a><\/noindex>. Ai u p\u00ebrdor n\u00eb pun\u00ebn e brendshme t\u00eb kompanis\u00eb, megjithat\u00eb aplikueshm\u00ebria e gjer\u00eb dhe potenciali n\u00eb fusha t\u00eb tjera ishin t\u00eb dukshme.<\/p>\n<p>Duke u p\u00ebrpjekur t\u00eb shesim k\u00ebt\u00eb teknologji klient\u00ebve potencial\u00eb, u p\u00ebrball\u00ebm me nj\u00eb penges\u00eb t\u00eb papritur. N\u00eb videon demonstruese, teknologjia jon\u00eb dukej dhe funksiononte shk\u00eblqyesh\u00ebm, nuk kishte asnj\u00eb problem k\u00ebtu. Video tregon at\u00eb q\u00eb funksionon, dhe nuk kishte asgj\u00eb t\u00eb imituar. Ne shpik\u00ebm dhe koduam nj\u00eb skenar realist t\u00eb aplikimit t\u00eb programit.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<img decoding=\"async\" alt=\"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026\" src=\"\/wp-content\/uploads\/2020\/10\/ea517a6aee0b015dc4d7bad4e86af6f4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nFaktikisht, kjo u b\u00eb problemi. Demo jon\u00eb funksionoi pik\u00ebrisht si\u00e7 e imitonte pun\u00ebn e aplikacioneve t\u00eb tjera. N\u00eb ve\u00e7anti, informacioni p\u00ebrsohej menj\u00ebher\u00eb nga A n\u00eb B, edhe n\u00ebse ishin skedar\u00eb t\u00eb m\u00ebdhenj media. Pasi ky\u00e7eshin, \u00e7do p\u00ebrdorues shihte sh\u00ebnime t\u00eb reja. Me aplikacionin, p\u00ebrdorues t\u00eb ndrysh\u00ebm mund t\u00eb punonin s\u00eb bashku n\u00eb projekte t\u00eb nj\u00ebjta, madje edhe n\u00eb rast se kishte nd\u00ebrprerje t\u00eb lidhjes s\u00eb internetit diku n\u00eb fshat. N\u00eb m\u00ebnyr\u00eb t\u00eb n\u00ebnkuptuar, di\u00e7ka e till\u00eb n\u00ebnkuptohej n\u00eb \u00e7do video t\u00eb prer\u00eb n\u00eb After Effects p\u00ebr produktin.<\/p>\n<p>Pavar\u00ebsisht se t\u00eb gjith\u00eb dinin p\u00ebr \u00e7far\u00eb sh\u00ebrben butoni Refresh, askush nuk kuptonte se aplikacionet web q\u00eb na k\u00ebrkonin t\u00eb zhvillonim, zakonisht ishin t\u00eb ndjeshme ndaj kufizimeve t\u00eb tyre. Dhe se n\u00ebse ata nuk do t\u00eb ishin m\u00eb t\u00eb nevojsh\u00ebm, p\u00ebrvoja e p\u00ebrdoruesit do t\u00eb ishte krejt ndryshe. N\u00eb p\u00ebrgjith\u00ebsi, ata v\u00ebrejn\u00eb se ishte e mundur t\u00eb \"bisedonin\", duke l\u00ebn\u00eb sh\u00ebnime p\u00ebr biseduesit, prandaj pyet\u00ebn se \u00e7far\u00eb e dallonte k\u00ebt\u00eb nga, p\u00ebr shembull, Slack. Uf-f-f!<\/p>\n<h2>Dizajni i sinkronizimeve t\u00eb p\u00ebrditshme<\/h2>\n<p>\nN\u00ebse keni p\u00ebrvoj\u00eb n\u00eb zhvillimin e softuerit, ndjenja q\u00eb duhet t\u00eb kujtoni se shumica e njer\u00ebzve nuk mund t\u00eb shikojn\u00eb thjesht nj\u00eb imazh t\u00eb nd\u00ebrfaqes dhe t\u00eb kuptojn\u00eb se \u00e7far\u00eb do t\u00eb b\u00ebj\u00eb kur t\u00eb nd\u00ebrveprojn\u00eb me t\u00eb, duhet t'ju nervozoj\u00eb. P\u00ebr t\u00eb mos p\u00ebrmendur se \u00e7far\u00eb ndodh brenda programit t\u00eb vet\u00eb. Dija se <i>mund<\/i> t\u00eb ndodhi - \u00ebsht\u00eb n\u00eb nj\u00eb mas\u00eb t\u00eb madhe rezultat i njohuris\u00eb se \u00e7far\u00eb nuk mund t\u00eb ndodh\u00eb dhe \u00e7far\u00eb nuk duhet t\u00eb ndodh\u00eb. P\u00ebr k\u00ebt\u00eb nevojitet <noindex><a rel=\"nofollow\" href=\"https:\/\/uxdesign.cc\/design-of-everyday-things-chapter-01-summary-and-keypoints-664d426a11e0\">modeli mendor<\/a><\/noindex> jo vet\u00ebm i asaj q\u00eb b\u00ebn\u00eb softueri, por edhe i m\u00ebnyr\u00ebs se si jan\u00eb t\u00eb koordinuara dhe komunikojn\u00eb mes tyre pjes\u00ebt e tij t\u00eb ve\u00e7anta.<\/p>\n<p>Nj\u00eb shembull klasik i k\u00ebsaj \u00ebsht\u00eb p\u00ebrdoruesi, i cili, p\u00ebr nj\u00ebzet minuta, shikon n\u00eb <i>spinner.gif<\/i>, duke menduar kur do t\u00eb p\u00ebrfundoj\u00eb puna. Zhvilluesi do t\u00eb kuptonte se procesi, me siguri, \u00ebsht\u00eb ngrir\u00eb dhe se gif-i kurr\u00eb nuk do t\u00eb largohet nga ekrani. Kjo animacion imiton procesin e pun\u00ebs, por nuk \u00ebsht\u00eb e lidhur me gjendjen e saj. N\u00eb raste t\u00eb tilla, disa teknik\u00eb kan\u00eb tendenc\u00eb t\u00eb rrokullisen syt\u00eb, duke u habitur nga shkalla e keqkuptimit t\u00eb p\u00ebrdoruesve. Por v\u00ebreni, kush prej tyre tregon p\u00ebr or\u00ebt duke th\u00ebn\u00eb se ato n\u00eb t\u00eb v\u00ebrtet\u00eb q\u00ebndrojn\u00eb pa l\u00ebvizur?<\/p>\n<p><img decoding=\"async\" alt=\"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026\" src=\"\/wp-content\/uploads\/2020\/10\/db67c48846549b272a367c0a37aec97b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nKjo \u00ebsht\u00eb thelbi i vler\u00ebs s\u00eb koh\u00ebs reale. Sot, bazat e t\u00eb dh\u00ebnave n\u00eb koh\u00eb reale p\u00ebrdoren ende shum\u00eb pak, dhe shum\u00eb njer\u00ebz iu qasen atyre me dyshime. Shumica e k\u00ebtyre bazave t\u00eb t\u00eb dh\u00ebnave tendencojn\u00eb aktivisht n\u00eb stilin NoSQL, prandaj zakonisht p\u00ebrdoren zgjidhje t\u00eb bazuara n\u00eb Mongo, p\u00ebr t\u00eb cilat \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb harrohen. Sidoqoft\u00eb, p\u00ebr mua kjo do t\u00eb thot\u00eb ngush\u00ebllim n\u00eb pun\u00ebn me CouchDB, si dhe studimi i projektimit t\u00eb strukturave q\u00eb do t\u00eb jen\u00eb n\u00eb gjendje t\u00eb mbushen me t\u00eb dh\u00ebna jo vet\u00ebm nga ndonj\u00eb burokrat. Mendoj q\u00eb po e shpenzoj koh\u00ebn time m\u00eb mir\u00eb.<\/p>\n<p>Por temi i v\u00ebrtet\u00eb i k\u00ebsaj postimi \u00ebsht\u00eb ajo q\u00eb un\u00eb p\u00ebrdor sot. Jo me zgjedhjen time, por p\u00ebr shkak t\u00eb politik\u00ebs korporative t\u00eb aplikuar me indiferenc\u00eb dhe verb\u00ebri. Prandaj, do t\u00eb jap nj\u00eb Krahasim Tep\u00ebr t\u00eb Drejt\u00eb dhe T\u00eb Paansh\u00ebm t\u00eb dy produkteve t\u00eb ngushta t\u00eb lidhura me pun\u00ebn me bazat e t\u00eb dh\u00ebnave n\u00eb koh\u00eb reale t\u00eb Google.<\/p>\n<p><img decoding=\"async\" alt=\"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026\" src=\"\/wp-content\/uploads\/2020\/10\/89432de9501b7667f8e187d14afc8897.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nN\u00eb emrat e t\u00eb dyve ka fjal\u00ebn Fire. Nj\u00ebra m\u00eb rikujton me dashuri. Tjetra p\u00ebr mua \u00ebsht\u00eb nj\u00eb lloj tjet\u00ebr zjarri. Nuk kam ngut t\u00eb them emrat e tyre, sepse sa her\u00eb q\u00eb ta b\u00ebj k\u00ebt\u00eb, ne do t\u00eb p\u00ebrballemi me problemin e par\u00eb t\u00eb madh - emrat.<\/p>\n<p>Nj\u00eb e para quhet <i>Firebase Real-Time Database<\/i>, nd\u00ebrsa e dyta - <i>Firebase Cloud Firestore<\/i>. T\u00eb dy jan\u00eb produkte nga <i>Firebase suite<\/i> Google. API-t\u00eb e tyre quhen, p\u00ebrkat\u00ebsisht, <code>firebase.database(\u2026)<\/code> dhe <code>firebase.firestore(\u2026)<\/code>.<\/p>\n<p>Kjo ndodhi sepse <i>Real-Time Database<\/i> \u00ebsht\u00eb thjesht origjinali <i>Firebase<\/i> para blerjes s\u00eb tij nga Google n\u00eb vitin 2014. Pastaj n\u00eb Google vendos\u00ebn t\u00eb krijojn\u00eb nj\u00eb produkt t\u00eb paralel, nj\u00eb <i>kopje<\/i> Firebase \u00ebsht\u00eb nj\u00eb platform\u00eb e bazuar n\u00eb t\u00eb dh\u00ebna t\u00eb m\u00ebdha, dhe e quajt\u00ebn Firestore me nj\u00eb cloud. Shpresoj q\u00eb ende nuk jeni ngat\u00ebrruar. N\u00ebse jeni ngat\u00ebrruar, mos u shqet\u00ebsoni, un\u00eb e kam ridizajnuar k\u00ebt\u00eb pjes\u00eb t\u00eb artikullit dhjet\u00eb her\u00eb.<\/p>\n<p>Sepse nevojitet t\u00eb sqaroni <i>Firebase<\/i> n\u00eb lidhje me Firebase, dhe <i>Firestore<\/i> n\u00eb lidhje me Firebase, t\u00eb pakt\u00ebn p\u00ebr t'ju kuptuar disa vite m\u00eb par\u00eb n\u00eb Stack Overflow.<\/p>\n<p>N\u00ebse do t\u00eb ekzistonte nj\u00eb \u00e7mim p\u00ebr em\u00ebrtimin m\u00eb t\u00eb keq t\u00eb produkteve softuerike, ky rast padyshim do t\u00eb ishte nj\u00eb nga pretendent\u00ebt. Distanca Hamming midis k\u00ebtyre emrave \u00ebsht\u00eb aq e vog\u00ebl, sa nd\u00ebrlikon madje inxhinier\u00ebt e p\u00ebrvoj\u00ebs, t\u00eb cil\u00ebt shkruajn\u00eb nj\u00eb em\u00ebr, megjith\u00ebse mendja e tyre mendon p\u00ebr nj\u00eb tjet\u00ebr. K\u00ebto jan\u00eb plane q\u00eb kan\u00eb d\u00ebshtuar me disfat\u00eb, t\u00eb menduara me q\u00ebllime t\u00eb mira; ata realizuan profeci p\u00ebr at\u00eb se si baza e t\u00eb dh\u00ebnave do t\u00eb ishte n\u00eb flak\u00eb. Dhe nuk po b\u00ebj shaka. Njeriu q\u00eb krijoi nj\u00eb skem\u00eb em\u00ebrtimi t\u00eb till\u00eb ka shkaktuar gjak, djers\u00eb dhe lot.<\/p>\n<p><img decoding=\"async\" alt=\"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026\" src=\"\/wp-content\/uploads\/2020\/10\/b793ce183c5d0477c32c87f64bce5879.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Fitorja e Pirros<\/h2>\n<p>\nMund t\u00eb mendoni se Firestore \u00ebsht\u00eb nj\u00eb <i>z\u00ebvend\u00ebsim<\/i> i Firebase, pasardh\u00ebsi i tij i gjenerat\u00ebs s\u00eb ardhshme, por do t\u00eb ishte nj\u00eb iluzion. Firestore padyshim nuk \u00ebsht\u00eb i p\u00ebrshtatsh\u00ebm p\u00ebr t\u00eb qen\u00eb nj\u00eb z\u00ebvend\u00ebsim i Firebase. Duket se dikush e ka hequr nga ai gjith\u00e7ka interesante dhe nj\u00eb pjes\u00eb t\u00eb madhe t\u00eb mbetur ka ngat\u00ebrruar n\u00eb m\u00ebnyra t\u00eb ndryshme.<\/p>\n<p>Megjithat\u00eb, nj\u00eb shikim i shpejt\u00eb n\u00eb t\u00eb dy produktet mund t'ju ngat\u00ebrroj\u00eb: duket se ato b\u00ebjn\u00eb t\u00eb nj\u00ebjt\u00ebn gj\u00eb, p\u00ebrmes API-ve kryesisht t\u00eb nj\u00ebjt\u00eb dhe madje n\u00eb t\u00eb nj\u00ebjt\u00ebn seanc\u00eb t\u00eb t\u00eb dh\u00ebnave. Dallimet jan\u00eb t\u00eb pakta dhe zbulohet vet\u00ebm gjat\u00eb studimeve t\u00eb kujdesshme t\u00eb dokumentacionit t\u00eb gjer\u00eb. Ose kur p\u00ebrpiqeni t\u00eb portoni kodin q\u00eb punon perfekt me Firebase n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb funksionoj\u00eb me Firestore. N\u00eb at\u00eb moment, kuptoni se nd\u00ebrfaqja e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave ndizet sa her\u00eb q\u00eb p\u00ebrpiqeni t\u00eb kryeni t\u00ebrheqjen e miut n\u00eb koh\u00eb reale. Po e p\u00ebrs\u00ebris, nuk b\u00ebj shaka.<\/p>\n<p>Klienti Firebase \u00ebsht\u00eb i sjellsh\u00ebm n\u00eb kuptimin q\u00eb ai buferon ndryshimet dhe realizon automatikisht p\u00ebrs\u00ebritjen e p\u00ebrpjekjeve p\u00ebr p\u00ebrdit\u00ebsim, ku prioriteti i jepet operacionit t\u00eb fundit t\u00eb shkrimit. Megjithat\u00eb, Firestore ka nj\u00eb kufizim prej 1 operacioni shkrimi p\u00ebr dokument p\u00ebr p\u00ebrdorues n\u00eb sekond\u00eb, dhe ky kufizim vendoset nga serveri. Kur punoni me t\u00eb, ju duhet t\u00eb gjeni vet\u00eb nj\u00eb m\u00ebnyr\u00eb p\u00ebr ta anashkaluar at\u00eb dhe t\u00eb implementoni nj\u00eb kufizues t\u00eb frekuenc\u00ebs s\u00eb p\u00ebrdit\u00ebsimeve, edhe kur thjesht po p\u00ebrpiqeni t\u00eb krijoni aplikacionin tuaj. Kjo do t\u00eb thot\u00eb se Firestore \u00ebsht\u00eb nj\u00eb baz\u00eb t\u00eb dh\u00ebnash n\u00eb koh\u00eb reale pa nj\u00eb klient t\u00eb koh\u00ebs reale, i cili maskohet si i till\u00eb p\u00ebrmes API-s\u00eb.<\/p>\n<p>N\u00eb k\u00ebt\u00eb pik\u00eb, ne fillojm\u00eb t\u00eb shohim shenjat e para t\u00eb dometh\u00ebnies s\u00eb ekzistenc\u00ebs s\u00eb Firestore. Ndoshta po gaboj, por dyshoj se dikush nga drejtuesit e lart\u00eb t\u00eb Google ka par\u00eb pas blerjes n\u00eb Firebase dhe thjesht ka th\u00ebn\u00eb: \u201cJo, o Zot, jo. Kjo \u00ebsht\u00eb e papranueshme. Vet\u00ebm jo n\u00ebn drejtimin tim\u201d.<\/p>\n<p><img decoding=\"async\" alt=\"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026\" src=\"\/wp-content\/uploads\/2020\/10\/fbb5ce5ff93b4e3a7bdcd12cce3bdd92.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAi doli nga selia e tij dhe shpalli:<\/p>\n<p><i>\u201cNj\u00eb dokument t\u00eb madh JSON? Jo. Ju do t\u00eb ndani t\u00eb dh\u00ebnat n\u00eb dokumente t\u00eb ve\u00e7anta, \u00e7do nj\u00eb prej t\u00eb cilave do t\u00eb ket\u00eb nj\u00eb madh\u00ebsi jo m\u00eb shum\u00eb se 1 megabajt.\u201d<\/i><\/p>\n<p>Duket se nj\u00eb kufizim i till\u00eb nuk do ta p\u00ebrballoj\u00eb p\u00ebrballjen e par\u00eb me nj\u00eb baz\u00eb p\u00ebrdoruesish mjaft t\u00eb motivuar. E dini se k\u00ebshtu \u00ebsht\u00eb. N\u00eb pun\u00ebn ton\u00eb, p\u00ebr shembull, kemi m\u00eb shum\u00eb se nj\u00eb mij\u00eb e pes\u00ebqind prezantime, dhe kjo \u00ebsht\u00eb Plot\u00ebsisht Normale.<\/p>\n<p>Me nj\u00eb kufizim t\u00eb till\u00eb, do t\u00eb jeni t\u00eb detyruar t\u00eb pranoni faktin se nj\u00eb \u201cdokument\u201d n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave nuk do t\u00eb ngjaj\u00eb me asnj\u00eb objekt q\u00eb p\u00ebrdoruesi mund ta quaj\u00eb dokument.<\/p>\n<p><i>\u201cM\u00ebnyrat e skenar\u00ebve q\u00eb mund t\u00eb p\u00ebrmbajn\u00eb recursively elemente t\u00eb tjera? Jo. Ato do t\u00eb p\u00ebrmbajn\u00eb vet\u00ebm objekte ose numra me gjat\u00ebsi fikse, ashtu si\u00e7 e \u00ebsht\u00eb menduar nga Zoti.\u201d<\/i><\/p>\n<p>Prandaj, n\u00ebse shpresonit t\u00eb vendosni GeoJSON tuaj n\u00eb Firestore, do t\u00eb zbuloni se kjo nuk \u00ebsht\u00eb e mundur. Nuk lejohet asgj\u00eb nj\u00ebdimensionale. Shpresoj se ju p\u00eblqen Base64 dhe\/ose JSON brenda JSON.<\/p>\n<p><i>\u201cImport dhe eksport JSON p\u00ebrmes HTTP, mjete linje komande ose panel administratori? Jo. Ju do t\u00eb mund t\u00eb eksportoni dhe importoni vet\u00ebm t\u00eb dh\u00ebna n\u00eb Google Cloud Storage. K\u00ebshtu, duket se quhet tani. Dhe kur them \u2018ju\u2019, po flas vet\u00ebm p\u00ebr ata q\u00eb kan\u00eb autorizimin e Pronarit t\u00eb Projektit. T\u00eb tjer\u00ebt mund t\u00eb shkojn\u00eb dhe t\u00eb krijojn\u00eb bileta.\u201d<\/i><\/p>\n<p>Si e shihni, modeli i t\u00eb dh\u00ebnave FireBase \u00ebsht\u00eb leht\u00ebsisht i p\u00ebrshkruesh\u00ebm. Ai p\u00ebrmban nj\u00eb dokument t\u00eb madh JSON q\u00eb lidh \u00e7el\u00ebsat JSON me rrug\u00ebt URL. N\u00ebse regjistroni duke <code>HTTP PUT<\/code> n\u00eb <code>\/<\/code> FireBase si m\u00eb posht\u00eb:<\/p>\n<pre><code class=\"json\">{\n  &quot;hello&quot;: &quot;world&quot;\n}<\/code><\/pre>\n<p>\nAt\u00ebher\u00eb <code>GET \/hello<\/code> do t\u00eb kthej\u00eb <code>&quot;world&quot;<\/code>. N\u00eb thelb, kjo funksionon pik\u00ebrisht si\u00e7 e prisni. Klllka e objekteve FireBase <code>\/my-collection\/:id<\/code> \u00ebsht\u00eb ekuivalente me nj\u00eb fjalor JSON <code>{&quot;my-collection&quot;: {...}}<\/code> n\u00eb rr\u00ebnj\u00eb, p\u00ebrmbajtja e s\u00eb cil\u00ebs \u00ebsht\u00eb e disponueshme n\u00eb <code>\/my-collection<\/code>:<\/p>\n<pre><code class=\"json\">{\n  &quot;id1&quot;: {...object},\n  &quot;id2&quot;: {...object},\n  &quot;id3&quot;: {...object},\n  \/\/ ...\n}<\/code><\/pre>\n<p>\nKjo funksionon shk\u00eblqyesh\u00ebm n\u00ebse \u00e7do insertim ka ID pa kolizione, p\u00ebr t\u00eb cil\u00ebn sistemi ka nj\u00eb zgjidhje standarde.<\/p>\n<p>Me fjal\u00eb t\u00eb tjera, databaza \u00ebsht\u00eb 100% e p\u00ebrputhshme me JSON (*) dhe funksionon shk\u00eblqyesh\u00ebm me HTTP, si me CouchDB. Por kryesisht e p\u00ebrdorni at\u00eb p\u00ebrmes API-s\u00eb n\u00eb koh\u00eb reale, e cila abstrakton websockets, autorizimin dhe abonimet. Paneli i administratorit ka t\u00eb dyja mund\u00ebsit\u00eb, duke lejuar redaktimin n\u00eb koh\u00eb reale dhe importimin\/exportimin e JSON. N\u00ebse n\u00eb kodin tuaj q\u00ebndroni t\u00eb nj\u00ebjtin parim, do t\u00eb habiteni sa shum\u00eb kod t\u00eb specializuar do t\u00eb humbas\u00eb, kur t\u00eb kuptoni se patch dhe diff JSON lejojn\u00eb t\u00eb zgjidhni 90% t\u00eb detyrave rutin\u00eb p\u00ebr trajtimin e gjendjes s\u00eb q\u00ebndrueshme.<\/p>\n<p>Modeli i t\u00eb dh\u00ebnave Firestore \u00ebsht\u00eb i ngjash\u00ebm me JSON, por ndryshon nga ai n\u00eb disa aspekte kritike. E p\u00ebrmenda tashm\u00eb munges\u00ebn e masivave brenda masivave. Modeli i sub-collections \u00ebsht\u00eb q\u00eb ato t\u00eb jen\u00eb koncepte t\u00eb klas\u00ebs s\u00eb par\u00eb, t\u00eb ndara nga dokumenti JSON q\u00eb i p\u00ebrmban. Meq\u00eb p\u00ebr k\u00ebt\u00eb nuk ka nj\u00eb serializim t\u00eb gatsh\u00ebm, p\u00ebr marrjen dhe shkrimin e t\u00eb dh\u00ebnave k\u00ebrkohet nj\u00eb rrug\u00eb e specializuar p\u00ebr ekzekutimin e kodit. P\u00ebr t\u00eb trajtuar koleksionet tuaja duhet t\u00eb shkruani skriptet dhe mjetet tuaja. Paneli i administratorit ju lejon t\u00eb b\u00ebni vet\u00ebm ndryshime t\u00eb vogla n\u00eb nj\u00eb fush\u00eb n\u00eb nj\u00eb koh\u00eb dhe nuk ka mund\u00ebsi importimi\/exportimi.<\/p>\n<p>Ata mor\u00ebn databaz\u00ebn NoSQL n\u00eb koh\u00eb reale dhe e shnd\u00ebrruan at\u00eb n\u00eb nj\u00eb SQL t\u00eb ngadalt\u00eb me auto-nd\u00ebrfutje dhe nj\u00eb kolon\u00eb t\u00eb ve\u00e7ant\u00eb jo-JSON. <i>Di\u00e7ka n\u00eb frym\u00ebn e GraftQL<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026\" src=\"\/wp-content\/uploads\/2020\/10\/c6e842418996c96f1efa873774f35f44.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Java e nxeht\u00eb<\/h2>\n<p>\nN\u00ebse Firestore do t\u00eb duhej t\u00eb b\u00ebhej m\u00eb e besueshme dhe e shkall\u00ebzueshme, ironia \u00ebsht\u00eb se zhvilluesi mesatar do t\u00eb marr\u00eb nj\u00eb zgjidhje m\u00eb pak t\u00eb besueshme sesa duke zgjedhur FireBase \"nga kutia\". Softueri q\u00eb i nevojitet nj\u00eb Administratori t\u00eb Ankesave t\u00eb Bazave t\u00eb Dh\u00ebnash k\u00ebrkon nj\u00eb nivel t\u00eb till\u00eb p\u00ebrpjekjeje dhe specialist\u00ebsh q\u00eb \u00ebsht\u00eb thjesht nerealist p\u00ebr ni\u015f\u00ebn, n\u00eb t\u00eb cil\u00ebn, n\u00eb m\u00ebnyr\u00eb t\u00eb supozuar, duhet t\u00eb ket\u00eb nj\u00eb produkt t\u00eb mir\u00eb. Kjo duket si t\u00eb thuash se HTML5 Canvas nuk \u00ebsht\u00eb z\u00ebvend\u00ebsim p\u00ebr Flash, n\u00ebse nuk ka mjete zhvillimi dhe player. P\u00ebr m\u00eb tep\u00ebr, Firestore \u00ebsht\u00eb mb\u00ebrthyer n\u00eb p\u00ebrpjekjet e tij p\u00ebr past\u00ebrtin\u00eb e t\u00eb dh\u00ebnave dhe validimin steril, q\u00eb thjesht nuk i p\u00ebrshtatet asaj q\u00eb p\u00ebrdoruesi mesatar i biznesit <i>e do t\u00eb punoj\u00eb<\/i>: p\u00ebr t\u00eb, gjith\u00e7ka \u00ebsht\u00eb opsionale, sepse deri n\u00eb fund t\u00eb fundit gjith\u00e7ka \u00ebsht\u00eb nj\u00eb skic\u00eb.<\/p>\n<p>Mungesa kryesore e FireBase \u00ebsht\u00eb se klienti u krijua disa vite p\u00ebrpara afatit t\u00eb tij, edhe para se shumica e zhvilluesve t\u00eb uebit t\u00eb merrnin vesh rreth imutabilitetit. Si rezultat, FireBase supozon se do t\u00eb ndryshoni t\u00eb dh\u00ebnat, prandaj nuk shfryt\u00ebzon avantazhet e imutabilitetit t\u00eb siguruar nga p\u00ebrdoruesi. P\u00ebr m\u00eb tep\u00ebr, ai nuk p\u00ebrdor t\u00eb dh\u00ebnat s\u00ebrish n\u00eb snapshotet e d\u00ebrguara p\u00ebrdoruesit, duke e b\u00ebr\u00eb shum\u00eb m\u00eb t\u00eb v\u00ebshtir\u00eb kryerjen e diferencave. P\u00ebr dokumente t\u00eb m\u00ebdha, mekanizmi i saj i transaksioneve t\u00eb bazuara n\u00eb diferencat e ndryshueshme \u00ebsht\u00eb thjesht i paafshe p\u00ebr t\u00eb, <code>WeakMap<\/code> n\u00eb JavaScript. Kjo \u00ebsht\u00eb e dobishme.<\/p>\n<p>N\u00ebse i jepni t\u00eb dh\u00ebnave form\u00ebn e duhur dhe nuk e b\u00ebni pem\u00ebn shum\u00eb t\u00eb madhe, at\u00ebher\u00eb kjo problem mund t\u00eb shmanget. Por m\u00eb kuriozitet, do t\u00eb ishte FireBase m\u00eb interesante n\u00ebse zhvilluesit do t\u00eb publikojn\u00eb nj\u00eb API klienti t\u00eb v\u00ebrtet\u00eb t\u00eb mir\u00eb, q\u00eb p\u00ebrdor imutabilitetin s\u00eb bashku me k\u00ebshilla t\u00eb r\u00ebnd\u00ebsishme praktike p\u00ebr struktur\u00ebn e bazave t\u00eb dh\u00ebnash. N\u00eb vend t\u00eb k\u00ebsaj ata, duket se p\u00ebrpiqen t\u00eb rregullojn\u00eb at\u00eb q\u00eb nuk \u00ebsht\u00eb e prishur, dhe nga kjo b\u00ebhet m\u00eb keq.<\/p>\n<p>Nuk e di t\u00eb gjith\u00eb logjik\u00ebn q\u00eb q\u00ebndronte pas krijimit t\u00eb Firestore. Racionalizimet p\u00ebr motivet q\u00eb lindin brenda nj\u00eb kat\u00ebrcaku t\u00eb zi jan\u00eb gjithashtu pjes\u00eb e arg\u00ebtimit. Ky p\u00ebrballim i dy bazave t\u00eb dh\u00ebnash jasht\u00ebzakonisht t\u00eb ngjashme, por t\u00eb pa krahasueshme, ndodh mjaft rrall\u00eb. Sikur dikush t\u00eb kishte menduar: <i>\"Firebase \u00ebsht\u00eb thjesht nj\u00eb funksion q\u00eb mund ta emulojm\u00eb n\u00eb Google Cloud\"<\/i>, por kjo, ende nuk e ka hapur p\u00ebr vete konceptin e p\u00ebrcaktimit t\u00eb k\u00ebrkesave t\u00eb bot\u00ebs reale ose krijimit t\u00eb zgjidhjeve t\u00eb dobishme q\u00eb plot\u00ebsojn\u00eb t\u00eb gjitha k\u00ebto k\u00ebrkesa. <i>\u00abLe t\u00eb mendojn\u00eb p\u00ebr k\u00ebt\u00eb zhvilluesit. Thjesht b\u00ebni UI-in t\u00eb bukur... A mund t\u00eb shtoni m\u00eb shum\u00eb zjarr?\u00bb<\/i><\/p>\n<p>Un\u00eb kuptoj disa gj\u00ebra rreth strukturave t\u00eb t\u00eb dh\u00ebnave. E shoh qart\u00eb se koncepti i \u00abgjith\u00e7kaje n\u00eb nj\u00eb pem\u00eb t\u00eb madhe JSON\u00bb \u00ebsht\u00eb nj\u00eb p\u00ebrpjekje p\u00ebr t\u00eb abstraktuar nga baza e t\u00eb dh\u00ebnave \u00e7do ndjenj\u00eb t\u00eb struktur\u00ebs n\u00eb shkall\u00eb t\u00eb gjer\u00eb. T\u00eb pres\u00ebsh q\u00eb softueri t\u00eb p\u00ebrballoj\u00eb \u00e7do fraktal t\u00eb dyshimt\u00eb t\u00eb struktur\u00ebs s\u00eb t\u00eb dh\u00ebnave \u2014 \u00ebsht\u00eb thjesht \u00e7menduri. Nuk kam nevoj\u00eb ta imagjinoj sa keq mund t\u00eb jet\u00eb, kam kryer auditime t\u00eb ashpra t\u00eb kodit dhe <i>kam par\u00eb gj\u00ebra q\u00eb ju, njer\u00ebzit, nuk i keni par\u00eb as n\u00eb \u00ebndrrat tuaja.<\/i>. Por un\u00eb gjithashtu e di se si duken strukturat e mira, <noindex><a rel=\"nofollow\" href=\"https:\/\/acko.net\/blog\/apis-are-about-policy\">si t'i p\u00ebrdorim ato,<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/acko.net\/blog\/software-development-as-advanced-damage-control\/\">pse kjo duhet t\u00eb b\u00ebhet.<\/a><\/noindex>. Mund ta imagjinoj nj\u00eb bot\u00eb ku Firestore do t\u00eb dukej krejt\u00ebsisht logjike, dhe ata q\u00eb e krijuan at\u00eb do ta shikonin se kishin b\u00ebr\u00eb nj\u00eb pun\u00eb t\u00eb mir\u00eb. Por ne nuk jetojm\u00eb n\u00eb k\u00ebt\u00eb bot\u00eb.<\/p>\n<p>Mb\u00ebshtetja p\u00ebr nd\u00ebrtimin e k\u00ebrkesave n\u00eb FireBase \u00ebsht\u00eb e dob\u00ebt sipas \u00e7do standardi, pothuajse nuk ekziston. Ajo definitivisht k\u00ebrkon p\u00ebrmir\u00ebsim ose t\u00eb pakt\u00ebn nj\u00eb rishikim. Por Firestore nuk \u00ebsht\u00eb shum\u00eb m\u00eb mir\u00eb, pasi \u00ebsht\u00eb e kufizuar nga t\u00eb nj\u00ebjtat indekse nj\u00eb-dimensional si n\u00eb SQL t\u00eb thjesht\u00eb. N\u00ebse ju nevojiten k\u00ebrkesa q\u00eb njer\u00ebzit i kryejn\u00eb me t\u00eb dh\u00ebna kaotike, at\u00ebher\u00eb k\u00ebrkohet nj\u00eb k\u00ebrkim me tekste t\u00eb plota, filtrat n\u00eb disa intervale dhe nj\u00eb renditje t\u00eb rast\u00ebsishme nga p\u00ebrdoruesi. Duke e shqyrtuar me kujdes, funksionet e SQL t\u00eb thjeshta jan\u00eb vet\u00eb shum\u00eb t\u00eb kufizuara. P\u00ebrve\u00e7 k\u00ebsaj, SQL-t\u00eb e vetme q\u00eb njer\u00ebzit mund t\u00eb kryejn\u00eb n\u00eb prodhim jan\u00eb k\u00ebrkesat e shpejta. Ju do t\u00eb keni nevoj\u00eb p\u00ebr nj\u00eb zgjidhje t\u00eb specializuar p\u00ebr indeksim me struktura t\u00eb mir\u00ebp\u00ebrcaktuara t\u00eb t\u00eb dh\u00ebnave. P\u00ebr gjith\u00e7ka tjet\u00ebr, t\u00eb pakt\u00ebn duhet t\u00eb ket\u00eb nj\u00eb map-reduce incremental ose di\u00e7ka t\u00eb ngjashme.<\/p>\n<p>N\u00ebse k\u00ebrkoni informacion p\u00ebr k\u00ebt\u00eb n\u00eb dokumentet e Google, shpresoj se do t'ju tregojn\u00eb drejt di\u00e7kaje si BigTable dhe BigQuery. Megjithat\u00eb, t\u00eb gjitha k\u00ebto zgjidhje shoq\u00ebrohen me nj\u00eb volum t\u00eb till\u00eb t\u00eb zhargonit t\u00eb shitjeve korporative, saq\u00eb shpejt do t\u00eb ktheheni mbrapsht dhe do t\u00eb filloni t\u00eb k\u00ebrkoni di\u00e7ka tjet\u00ebr.<\/p>\n<p>E fundit q\u00eb ju nevojitet n\u00eb rastin e nj\u00eb baze t\u00eb dh\u00ebnash n\u00eb koh\u00eb reale \u2014 \u00ebsht\u00eb di\u00e7ka e krijuar nga njer\u00ebz dhe p\u00ebr njer\u00ebz q\u00eb punojn\u00eb sipas nj\u00eb shkalle pagash p\u00ebr udh\u00ebheqjen.<\/p>\n<p><i>(*) Kjo \u00ebsht\u00eb nj\u00eb shaka, nuk ekziston nj\u00eb koncept si <noindex><a rel=\"nofollow\" href=\"http:\/\/seriot.ch\/parsing_json.php\">p\u00ebrputhshm\u00ebria me JSON 100%<\/a><\/noindex>.<\/i><\/p>\n<p><\/p>\n<h4>Me lejen e reklam\u00ebs<\/h4>\n<p>\nJeni duke k\u00ebrkuar <noindex><a rel=\"nofollow\" href=\"https:\/\/vdsina.ru\/cloud-servers?partner=habr130\">VDS<\/a><\/noindex> p\u00ebr debugimin e projekteve, server p\u00ebr zhvillim dhe hostim? Ju jeni klienti yn\u00eb \ud83d\ude42 Tarifimi ditor p\u00ebr server\u00eb me konfiguracione t\u00eb ndryshme, antiDDoS dhe licencat Windows p\u00ebrfshihen n\u00eb \u00e7mim.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/vdsina.ru\/cloud-servers?partner=habr130\"><img decoding=\"async\" alt=\"Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026\" src=\"\/wp-content\/uploads\/2020\/10\/f1215924e9c1c41d00f7c71c6c569aa4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/vdsina\/blog\/522672\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u043c\u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e. \u041c\u043d\u043e\u0433\u043e \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u043d\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u042d\u0442\u043e \u0431\u044b\u043b \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0435\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0440\u0430\u043d\u043d\u0435\u0433\u043e React \u0438 CouchDB. \u041e\u043d \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e JSON OT. \u0415\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043e\u0434\u043d\u0430\u043a\u043e \u0448\u0438\u0440\u043e\u043a\u0430\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0444\u0435\u0440\u0430\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":96466,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-96465","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u043c\u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e. \u041c\u043d\u043e\u0433\u043e \u043b\u0435\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eta-baza-dannyh-v-ogne\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u042d\u0442\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0433\u043d\u0435\u2026 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u043c\u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e. \u041c\u043d\u043e\u0433\u043e \u043b\u0435\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eta-baza-dannyh-v-ogne\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-12T05:42:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-12T05:42:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kjo baz\u00eb t\u00eb dh\u00ebnash \u00ebsht\u00eb n\u00eb flak\u00eb\u2026 | ProHoster","description":"M\u00eb lejoni t\u00eb tregoj nj\u00eb histori teknike. Shum\u00eb vite.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eta-baza-dannyh-v-ogne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u042d\u0442\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043e\u0433\u043d\u0435\u2026 | ProHoster","og:description":"\u041f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u043c\u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e. \u041c\u043d\u043e\u0433\u043e \u043b\u0435\u0442.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/eta-baza-dannyh-v-ogne","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-12T05:42:27+00:00","article:modified_time":"2020-10-12T05:42:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"96465","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:42:30","updated":"2022-09-29 13:02:04","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/96465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=96465"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/96465\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/96466"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=96465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=96465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=96465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}