Selam merak ettiğim bir şey var acaba verilerle var olan bir mongodb veritabanını mysqle çevirebilir miyiz ? Çevirsek veriler zarar görür mü ? Mantıklı mıdır ? Değilse nasıl yapılır başka bir mantıklı çözüm var mıdır ? Hiç yaptınız mı ?
Mongodb veritabanını mysqle çevirme ?
- Düzenlendi
- En İyi Yanıtaghabalaguluzade tarafından
aghabalaguluzade verilerle var olan bir mongodb veritabanını mysqle çevirebilir miyiz ?
Hayır. Biri NoSQL biri SQL kullanan RDMBS, iki alakasız veri tabanı.
aghabalaguluzade Çevirsek veriler zarar görür mü ?
Çeviremezsiniz.
aghabalaguluzade Mantıklı mıdır ?
Neden çevirmeye çalıştığınıza bağlı. Zaten çevirme gibi bir durum varsa en başta yanlış iş için yanlış veri tabanı seçmişsiniz demektir, geçmiş olsun.
aghabalaguluzade Değilse nasıl yapılır başka bir mantıklı çözüm var mıdır ?
MongoDB şemasını önce MySQL içinde tekrar oluşturacaksınız, dokümanları tablo olarak oluşturacaksınız. MongoDB JSON olduğu için bazı alanları MySQL'de ayrı bir tabloya ilişki kurabilmek için dönüştürmeniz gerekebilir, tabi indeksleme vs gerekecektir. Daha sonra verileri MySQL'e şemaya uygun şekilde tek tek aktaracaksınız. Yani kısacası çevirme dediğiniz, yapıyı MySQL içinde baştan oluşturma ve tek tek kayıtları taşıma.
aghabalaguluzade Hiç yaptınız mı?
Yapmayı istedim ama projeyi neredeyse baştan yazmak gerektiği için vazgeçtim. Böyle bir şeyi yapmak demek aynı zamanda eğer düzgün bir mimari kurulmamışsa tüm kodun da değişmesi demek. Hatta bazı yerleri direkt baştan yazmanız gerekecektir. Üstelik bazı yerler daha hızlı ya da daha yavaş çalışacak, buna göre de değişiklik yapmanız gerekecek.
MySQL:
INSERT INTO users (name, email) VALUES ('Ahmet Cemil', 'ahmet.cemil@babiali.com');
SELECT id, name, email FROM users;
$users = User::all();
MongoDB
db.users.insertOne({
name: "Ahmet Cemil",
email: "ahmet.cemil@babiali.com"
});
db.users.find({}, {
id: 1,
name: 1,
email: 1
});
$collection = (new MongoDB\Client)
->mydb
->users;
$users = $collection->find();
mgsmus anladım hocam teşekkür ederim