Moda va uslub. Go'zallik va so'glik. Uy. U va siz

Phpmyadmin da MySQL jadvalini yaratish. Ma'lumotlar bazasi bilan ishlash

Salom, 2017 yilning birinchi posti! Hamma o'z salatlarini tugatayotganda, men MySQL ma'lumotlar bazasida xorijiy kalit cheklovlari haqida qisqacha eslatma yozishga qaror qildim.

Nima uchun jadvalda xorijiy kalitlar kerak?

Chet el kalitlari jadvallar orasidagi munosabatlarni tartibga soladi. Ularning yordami bilan ma'lumotlar bazasi tuzilishini nazorat qilish ancha soddalashtirildi, dastur kodi qisqartirildi va soddalashtirildi, chunki biz buning uchun mas'uliyatning katta qismini o'z yelkamizdan ma'lumotlar bazasiga o'tkazamiz. To'g'ri sozlangan xorijiy kalitlar ortiqcha sonlarni kamaytirish orqali ma'lumotlar yaxlitligini oshirishni ta'minlaydi.

Xulosa qilib aytganda, xorijiy kalitlarning ko'pgina afzalliklari bor, shuning uchun ulardan qanday foydalanishni bilish foydalidir.

Chet el kalitlarini sozlash

Men o'zimning sevimliimda sozlashni namoyish qilaman, chunki bu juda qulay, bundan tashqari, administrator yaratilgan so'rov kodini yashirmaydi va siz uni har doim ko'rishingiz mumkin( eslash, nusxalash, tanqid qilish).

Misol ManyToOne va OneToMany

Ikkita jadval: tovarlar (id, nom, katalog_id) va kataloglar (id, nom). Bir katalogda bir guruh tovarlar (OneToMany) va istalgan miqdordagi tovarlar bo'lishi mumkin bitta katalog (ManyToOne). Ushbu misoldagi xorijiy kalit tovarlar jadvalidagi catalog_id maydonidir.

Phpmyadmin-da jadvallar yaratish

Yaratilgan so'rovlar

JADVAL YARATISH mybd.tovarlar (id nomi VARCHAR(255) NO NULL , catalog_id INT NOLL, ASOSIY KEY ( id), INDEKS( catalog_id)) Dvigatel = InnoDB; JADVAL YARATISH mybd.kataloglar (id INT NO NULL AUTO_INCREMENT , nomi VARCHAR(255) NULL EMAS, ASOSIY KEY ( id)) Dvigatel = InnoDB;

Catalog_id chet el kalitini sozlash

Mahsulotlar va kataloglar o'rtasida aloqa o'rnatish vaqti keldi. Tovarlar jadvalini oching, "tuzilma" yorlig'iga o'ting va "ulanishlar" tugmasini qidiring.

"Xorijiy kalit cheklovlari" bo'limida qatorlarni to'ldiring va "ON DELETE" va "ON UPDATE" amallarini tanlang.

Yaratilgan so'rov

JADVAL ALTER tovarlar Xorijiy kalit qo‘shish ( catalog_id) ADABIYOTLAR mybd.kataloglar(id) YANGILANISH CHEKLAMASIDA CASKADNI O'CHIRISh ON;

ON DELETE va ON UPDATE ma'nolari

CASCADE— Kaskadli oʻchirish va tahrirlash. Bu sozlama shuni anglatadiki, siz katalogni oʻchirib tashlaganingizda undagi barcha mahsulotlar ham oʻchiriladi. Tahrirlashda, agar biz katalog identifikatorini o'zgartirsak, mahsulotlar uchun "catalog_id" maydoni avtomatik ravishda o'zgaradi.

CHEKLASH— Ushbu sozlash bilan, agar biz mahsulotlarni o'z ichiga olgan katalogni o'chirishga yoki uning identifikatorini o'zgartirishga harakat qilsak, ma'lumotlar bazasi bizga xatolik beradi va o'chirish amalga oshirilmaydi.

SET NULL— Nomidan koʻrinib turibdiki, agar shunday identifikatorga ega boʻlgan katalog yoʻqolsa (oʻchirilgan yoki oʻzgartirilsa), “catalog_id” maydonidagi mahsulotlarning qiymati NULLga oʻrnatiladi. Ushbu parametr bilan ehtiyot bo'lishingiz kerak, chunki indekslar sukut bo'yicha "NULL EMAS".

HARAKAT YO‘Q— Katalogni oʻchirish va tahrirlashga eʼtibor bermaymiz, hatto “catalog_id” maydonida mavjud boʻlmagan identifikator boʻlsa ham, biz unga eʼtibor bermaymiz.

ManyToMany misoli

Ish ancha murakkab, yozuvlarni takrorlamaslik uchun odatda ikkita maydondan iborat bo'lgan alohida munosabatlar jadvali tuziladi. Keling, misolni ko'rib chiqaylik: mualliflar (id, ism) , kitoblar (id, ism) , muallif_kitobi(muallif_id, kitob_identifikatori). Kitob hammuallif bo'lishi mumkin va muallif bir nechta kitobga ega bo'lishi mumkin - ManyToMany munosabatlarining ajoyib namunasi.

Bog'lanish jadvalini yaratish

phpmyadmin da

Yaratilgan so'rov

JADVAL YARATISH kutubxona.muallif_kitobi (muallif_id INT NO NULL, book_id INT NOT NULL, INDEX ( muallif_id, book_id)) Dvigatel = InnoDB;

author_id va book_id birgalikda birlashtirilgan indeks bo'lib, "havolalar" yorlig'ida ularning har biriga cheklovlar qo'shish qoladi va siz tugatdingiz!

Xulosa

Ilova ustida ishlashni osonlashtirish uchun ma'lumotlar bazasiga qo'shimcha mas'uliyat qo'shish imkoniyatini qo'ldan boy bermang va jadval munosabatlarini boshqarishdan ko'ra uning tuzilishi haqida o'ylang. Ma'lumotlar bazasi dizayniga omad tilaymiz, e'tiboringiz uchun rahmat!

Ushbu maqolada men sizga o'rgataman PHPMyAdmin-da jadvallarni boshqarish, ya'ni ma'lumotlar bazasida jadvallarni yaratish, tahrirlash va o'chirish. Ushbu maqola juda muhim va siz uni albatta o'rganishingiz kerak.

dan boshlaylik PHPMyAdmin-da jadval yaratish:

Bu yerda gaplashadigan ko‘p narsa bor. Jadval maydonlari sozlamalaridan boshlaylik:

  • Ism, so'rashingiz mumkin deb o'ylayman. Bitta narsa, ajratilgan so'zga duch kelmang. Ya'ni, siz maydonni bera olmaysiz, masalan, bunday nom " indeks".
  • Turi. Maydon turlari ushbu maqolada batafsil muhokama qilindi: shuning uchun men hech narsa qo'shmayman.
  • Uzunliklar/qiymatlar. Bu erda siz o'zgaruvchilarning chegara qiymatlarini (uzunliklarini) belgilashingiz mumkin. Masalan, men bu imkoniyatdan resurslarni tejash uchun tez-tez foydalanaman. Masalan, parol uchun men turni o'rnatdim VARCHAR va maksimal belgilar soni 32 . Holbuki, sukut bo'yicha, VARCHAR gacha saqlash imkonini beradi 255 belgilar.
  • Kodlash. Albatta, bu sozlama faqat string turlariga tegishli. Agar siz ushbu sohada faqat rus va lotin alifbosidagi satrlarni saqlasangiz, foydalaning Kirill alifbosi (cp1251_general_ci), va agar siz boshqa belgilarni saqlashingiz mumkin bo'lsa, foydalaning unicode (utf8_general_ci).
  • Atributlar. Faqat raqamlarga ishora qiladi. Agar sizning raqamingiz aniq ijobiy bo'lsa, variantni yoqing " Imzosiz", bu tanlangan turdagi qiymatlarning ijobiy diapazonini kengaytiradi. Bundan tashqari, variant ham mavjud " Imzosiz ZEROFILL", kamdan-kam qo'llaniladi, lekin u quyidagilarni bajaradi: u barcha foydalanilmagan yuqori tartibli bitlarni nol bilan to'ldiradi. Ya'ni, sizda raqam bor deylik. 4 , ammo saqlanadi: " 000000004 ", bu erda nollar soni tanlangan turdagi bo'sh raqamlar bilan belgilanadi.
  • Nol. Ushbu parametr sizga qiymatni yoqish imkonini beradi " null". Eslab qoling: " null" - u emas 0 , va bo'sh satr emas. Bu bo'sh ob'ekt, ya'ni hech narsa!
  • Standart. Standart maydon qiymatini o'rnatishga imkon beruvchi foydali variant.
  • Qo'shimcha. sozlash imkonini beradi" auto_increment". Bu juda muhim xususiyat, menimcha, siz har bir jadvalga kiritasiz. Bu parametr sizga avtomatik ravishda oshirish imkonini beradi. 1 maydon qiymati. uchun ideal ID (noyob identifikator), har bir kirish uchun noyob bo'lishi kerak. Va bu sohaning o'ziga xosligi haqida o'ylamaslik uchun shunchaki variantni yoqing " auto_increment".
  • Keyingi radio kalitlari:
    • Asosiy kalit. Odatda, bu kalit maydonga tayinlanadi ID. Bu kalit maydon qiymati butun jadval uchun yagona ekanligini bildiradi, bundan tashqari bu maydonda indeks yaratiladi. Indeks nima va u nima uchun kerakligi haqida keyingi maqolalardan birida gaplashamiz.
    • Indeks. Aslida, bu maydon uchun indeks yaratish yoki yaratmaslik.
    • Noyob. Agar siz ushbu parametrni o'rnatsangiz, ushbu maydonning qiymati noyob bo'lishi kerak.
    • Va tasdiqlash qutisi To'liq matn" to'liq matnli indeks yaratish yoki yaratmaslikni anglatadi.
  • Izohlar. Ushbu maydonni o'zingizning xohishingiz bilan to'ldirishingiz mumkin.
  • MIME turi. Agar sizda biron bir maxsus qiymat, masalan, rasm mavjud bo'lsa, ushbu maydon to'ldirilishi kerak. Qoida tariqasida, u qo'yiladi " avtomatik aniqlash".
  • Brauzer transformatsiyalari. Men buni tasvirlamayman, chunki u juda kam ishlatiladi. Ammo agar xohlasangiz, uni maqolada o'qishingiz mumkin PHPMyAdmin, bu haqda juda yaxshi yozilgan va buni tushunish qiyin bo'lmaydi.
  • Brauzerni o'zgartirish imkoniyatlari. Bu erda siz transformatsiya uchun parametrlarni o'rnatishingiz mumkin, agar siz ulardan foydalansangiz.

Jadval sozlamalari ancha sodda:

  • Jadvalga sharh bering. Siz uni to'ldirishingiz mumkin yoki hech narsa yozolmaysiz.
  • Jadval turi:
    • MyISAM. Eng mashhur MySQL da jadval turi, va u ko'pgina vazifalar uchun javob beradi.
    • Uyum. Bu jadvalning o'ziga xosligi shundaki, u xotirada saqlanadi, natijada bu turdagi jadvallar JUDA tez qayta ishlanadi. Vaqtinchalik jadvallar uchun ideal. Albatta, agar muvaffaqiyatsiz bo'lsa, barcha ma'lumotlar yo'qoladi.
    • Birlashtirish. Ushbu tur oddiy jadvallar to'plamidir MyISAM. Men o'zim bu turni hali ishlatmaganman, shuning uchun boshqa hech narsa deya olmayman, bundan tashqari, bu tur hali ham innovatsiya, shuning uchun hech kim barqarorlikka kafolat bera olmaydi.
  • Jadvalni kodlash. Maydonlar uchun kodlashni o'rnatish bilan mutlaqo bir xil qoidalar.

Shunday qilib, biz jadvallarni yaratishni saralab oldik va endi bu haqda gaplashamiz PHPMyAdmin-da jadval sozlamalarini qanday o'zgartirish mumkin.

Oxirgi yangilanish: 22.12.2017

Odatda, ma'lumotlar bazalari ma'lumotlarni saqlash sifatida ishlatiladi. PHP turli xil ma'lumotlar bazasini boshqarish tizimlaridan foydalanishga imkon beradi, ammo bugungi kunda PHP bilan birgalikda eng mashhuri MySQL hisoblanadi. MySQL bepul dastur bo'lib, SQL buyruqlari yordamida ma'lumotlar bazalari bilan ishlash imkonini beradi. MySQL-ni o'rnatish va sozlash jarayoni allaqachon muhokama qilingan.

MySQL ma'lumotlar bazalari bilan ishlashni osonlashtirish uchun keling, phpMyAdmin skriptlarining maxsus to'plamini o'rnatamiz. phpMyAdmin MySQL ma'lumotlar bazalarini boshqarish uchun intuitiv veb-interfeysni taqdim etadi. Ushbu vositadan foydalanib, MySQL-ni konsol orqali boshqarishdan ko'ra ma'lumotlar bazalari bilan ishlash ancha oson.

PhpMyAdmin-ni o'rnatish uchun arxivni yuklab oling va uni papkaga oching C: \ localhost php uchun hujjatlar qayerda. Qisqalik uchun ochilmagan jild nomini phpMyAdmin deb o'zgartiramiz.

Ochilmagan phpMyAdmin katalogida fayl yarating config.inc.php quyidagi tarkib bilan:

Va hamma narsa to'g'ri sozlanganligiga ishonch hosil qilish uchun brauzerda phpMyAdmin-ga o'tamiz, masalan, http://localhost:8080/phpmyadmin:

Chap ustunda siz MySQL serveridagi barcha mavjud ma'lumotlar bazalarini ko'rishingiz mumkin. Agar siz hali hech qanday ma'lumotlar bazalarini yaratmagan bo'lsangiz ham, serverda allaqachon standart ma'lumotlar bazalari to'plami mavjud.

PhpMyAdmin interfeysining o'ng tomonida asosiy ma'lumotlar bazasini boshqarish vositalari, shuningdek, turli xil konfiguratsiya ma'lumotlari mavjud.

phpMyAdmin-da MySQL ma'lumotlar bazasini yaratish

MySQL serveri bilan maʼlumotlarni almashish uchun (saqlash, oʻzgartirish, oʻchirish, maʼlumotlarni olish) bizga tabiiy ravishda maʼlumotlar bazasi kerak boʻladi. Biz MySQL konsolidan, shuningdek, phpMyAdmin vizual interfeysidan ma'lumotlar bazasini yaratishimiz mumkin.

phpMyAdmin interfeysini ochamiz. Keling, "Ma'lumotlar bazalari" yorlig'iga o'tamiz. Yorliq ostida Ma'lumotlar bazasini yaratish Keling, yangi ma'lumotlar bazasi uchun ba'zi nomlarni kiritamiz, masalan, compstore va "Yaratish" tugmasini bosing.

Va shundan so'ng biz yangi ma'lumotlar bazasini muvaffaqiyatli yaratish haqida xabar olamiz va u ma'lumotlar bazasi ro'yxatlariga qo'shiladi.

Yangi ma'lumotlar bazasi hali ham bo'sh va hech narsa o'z ichiga olmaydi. Keling, unga ma'lumotlarni saqlaydigan jadval qo'shamiz. Buni amalga oshirish uchun ma'lumotlar bazasi nomini bosing va biz "Tuzilish" yorlig'iga o'tamiz, u erda bizga yangi jadval uchun variantlar taklif etiladi. "Ism" maydoniga yangi jadval nomini kiriting. Jadvalda smartfon modellari haqidagi ma'lumotlarni saqlashga ruxsat bering, shuning uchun "telefonlar" nomini kiritamiz va ustunlar soni sifatida 3 raqamini kiritamiz:

Jadvalni yaratish uchun "O'tkazish" tugmasini bosing. Shundan so'ng biz ustun parametrlarini o'rnatish uchun hujayralar to'plamiga ega bo'lamiz. Ustun nomlari uchun quyidagini ketma-ket ko'rsatamiz: id, nom, kompaniya. Tur sifatida biz id ustunlari uchun INT turini, nom va kompaniya ustunlari uchun VARCHAR turini belgilaymiz. Nom va kompaniya ustunlari uchun "Uzunlik/qiymatlar" maydoniga 200 raqamini kiriting - bu belgilarda maksimal chiziq uzunligini ko'rsatadi. Shuningdek, identifikator ustuni uchun "Indeks" maydonida ASOSIY ni belgilang va "A_I" (AutoIncrement) maydoniga belgi qo'ying:

Shunday qilib, jadvalda Noyob ID, Telefon nomi va Ishlab chiqaruvchi nomi uchun ustunlar bo'ladi. Va keyin quyidagi "Saqlash" tugmasini bosing.

Jadvalni yaratgandan so'ng, biz ma'lumotlar bazasi ustunida jadval va uning ustunlarini ko'rishimiz mumkin:

Bu phpMyAdmin-da jadvallarni yaratishning yagona usuli emas, chunki bu erda biz SQL so'rovlari yordamida ma'lumotlar bazasini boshqarishimiz mumkin. Shunday qilib, ma'lumotlar bazalari ro'yxatidan ma'lumotlar bazamizni tanlang va "SQL" yorlig'iga o'ting. U SQL so'rovlar tilida buyruq kiritish uchun maydonni ko'rsatadi. Unga quyidagi buyruqni kiritamiz:

1-jadval telefonlarini yaratish (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, nomi VARCHAR(200) NOT NULL, kompaniya VARCHAR(200) NO NULL)

Bu standart SQL jadvalini yaratish buyrug'idir. CREATE Table kalit so'zlaridan keyin yaratilayotgan jadval nomi, so'ngra qavs ichidagi ustun ta'riflari, vergul bilan ajratilgan holda keladi.

Har bir ustun ta'rifi ustun nomini, uning turini va bir qator qo'shimcha qiymatlarni o'z ichiga oladi. Misol uchun, id ustunining ta'rifi (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ustun nomini, turi INT ekanligini, shuningdek, ustun qiymatga ega bo'lishi kerakligini ko'rsatadi - NOT NULL, uning qiymati avtomatik ravishda o'sib boradi. biri yangi ob'ekt - AUTO_INCREMENT qo'shilishi bilan va u birlamchi kalit - PRIMARY KEY rolini o'ynaydi.

Umuman olganda, bu tarzda tuzilgan jadval avval tuzilgan jadvalga teng bo'ladi. Oldinga tugmasini bosing va ikkinchi jadval, telefonlar1 yaratiladi.

phpMyAdmin deb nomlangan vositani o'z ichiga oladi Dizayner. Ushbu vosita ma'lumotlar bazasida jadvallar yaratish ishini va jadvallar orasidagi munosabatlarni soddalashtirishga imkon beradi.

Birinchidan, ma'lumotlar bazasini yarating va olingan foydalanuvchi ma'lumotlari bilan tizimga kiring phpMyAdmin.

I bosqich: konfiguratsiyalar omborini yaratish

II bosqich. Dizayner bilan ishlash

  • Ma'lumotlar bazalari ro'yxati bilan chap maydonda yangi yaratilganini tanlang
  • Menyuga o'ting Ko'proq va pastki menyu Dizayner

  • O'ng tarafdagi asboblar panelida tanlang Jadvallar roʻyxatini koʻrsatish/yashirish
  • Chap tomonda jadvallar ro'yxati bo'lgan panel ochiladi. bilan bog'liq keraksiz jadvallarni yashirish/ko'rsatish Sozlamalar do'koni (pma), siz tegishli katakchani olib tashlashingiz/o'rnatishingiz mumkin

Aloqa yaratish

  • O'zaro munosabatlarni sozlashingiz kerak bo'lgan jadvallarni tanlash
  • bosing Ulanish yarating asboblar panelida
  • Keyinchalik, o'qda yozuv bo'ladi Malumot kalitini tanlang. Jadvalning asosiy tugmachasini bosishingiz kerak. Bizning holatda, bu 1-jadvaldagi tbl1_id kalitidir
  • O'q ga o'zgaradi Chet el kalitini tanlang. Bog'langan jadvalning tegishli maydonini bosishingiz kerak. Bizning holatda, bu 2-jadvaldagi tbl1_id maydoni
  • Muloqot oynasida tanlang KELISHDIKMI


Salom, bugun biz buni qanday qilishni aniqlaymiz PHPMyAdmin da jadvallar bilan ishlash, va biz jadvallarni yaratish, tahrirlash, qo'shish, shuningdek ularning tuzilishini ko'rib chiqishni o'rganamiz. Jadval qo'shish uchun birinchi navbatda ma'lumotlar bazasini yaratish kerak, keyingi bosqich esa jadvalni yaratishdir.
Birinchidan, siz yaratgan ma'lumotlar bazasiga kirishingiz kerak, shundan so'ng sizning oldingizda quyidagilar paydo bo'ladi:


Jadval nomini va sizga kerak bo'lgan ustunlar sonini kiritishingiz kerak bo'lgan joy. Keyinchalik, sizning oldingizda quyidagi maydon paydo bo'lishi kerak, unda siz ma'lumotlarni kiritishingiz kerak bo'ladi:


Avvalo, siz yaratiladigan maydon nomini, masalan, kiritilgan yozuvning identifikatorini ko'rsatasiz.
Keyin, maydoningizning ma'lumotlar turini belgilang. Biz barcha turlar haqida alohida gaplashamiz.
Keyingi bosqichda siz qiymat uzunligini belgilar bilan belgilashingiz mumkin. Siz standart qiymatni ham belgilashingiz mumkin.
Taqqoslash uchun siz kodlashni tanlashingiz kerak, lekin esda tutishingiz kerakki, u satrlar uchun ko'rsatilishi kerak, ya'ni bizning misolimizda yozuv identifikatorini saqlasak, u holda kodlashni ko'rsatish shart emas.
Atributlardagi qiymatdan foydalanishni tavsiya qilaman imzosiz, va undan faqat raqamlar uchun foydalaning.
Agar siz katakchani belgilasangiz Null, keyin qiymat uni qabul qilishi mumkin, ya'ni hech narsa o'z ichiga olmaydi.
Keyingi maydonda sizga kerakli indeksni belgilashingiz mumkin: ASOSIY, asosiy kalit bo'lib, butun yaratilayotgan jadval uchun yagona bo'lishi kerak. Faqat bizning identifikator maydonimiz uchun bu ishlaydi. NOKTA, agar siz ushbu qiymatni o'rnatsangiz, maydon noyob bo'lib qolishi kerak, masalan, foydalanuvchi login. Ma'nosi INDEKS, belgilangan maydon uchun indeksni belgilaydi. Va ma'nosi To'liq matn maydon uchun to'liq matn indeksini belgilaydi.
Agar siz katakchani belgilasangiz A_I, keyin jadvalga har safar yangi yozuv qo'shilganda, bu maydonning qiymati avtomatik ravishda bittaga ortadi.
Kelajakda siz ushbu maydon uchun sharhingizni belgilashingiz mumkin. Qolgan parametrlar juda muhim emas, shuning uchun biz ularni tahlil qilmaymiz, men yana bir narsani ta'kidlayman. Jadval turida siz belgilashingiz mumkin InnoDB yoki MyISAM, shuningdek, jadval uchun kodlashni o'rnatishni unutmang. Ushbu nuqtada biz jadvalni yaratishni yakunlashimiz va OK tugmasini bosishimiz mumkin. Butun jadval yaratilgan va chap tomonda paydo bo'ladi. Uni bosganingizda, siz quyidagi kabi menyuni ko'rishingiz kerak:


Endi siz kerakli maydonlarni tanlab, o'z maydonlaringizni tahrirlashingiz mumkin va tahrirlash tugmasini bosing. Siz ham xuddi shunday tarzda maydonni o'chirishingiz mumkin, o'chirish tugmasini bosing va o'chirishni tasdiqlang. Agar sizda yana bitta maydon etishmayotganligini eslasangiz, uni maydonlar sonini ko'rsatgan holda qo'shishingiz mumkin, qaysi maydondan keyin ularni kiritishingiz va OK tugmasini bosing. Shunday qilib, men jadvallar bilan bajarilgan asosiy manipulyatsiyalarni sanab o'tdim. Siz barcha mumkin bo'lgan sozlamalar va variantlarga biroz ko'proq qarashingiz mumkin. Bu bizning tadqiqotimizni yakunlaydi PHPMyAdmin jadvallari bilan ishlash, Men rejalashtirgan hamma narsa allaqachon sizga aytilgan. Ko'rishguncha

Sizga maqola yoqdimi? Do'stlaringizga ulashing!
Ushbu maqola foydali bo'ldimi?
Ha
Yo'q
Fikr-mulohazangiz uchun tashakkur!
Nimadir xato ketdi va ovozingiz hisobga olinmadi.
Rahmat. Xabaringiz jo'natildi
Matnda xatolik topdingizmi?
Uni tanlang, bosing Ctrl + Enter va biz hamma narsani tuzatamiz!