Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

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ı ?

  • mgsmus bunu yanıtladı.
  • aghabalaguluzade

    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();

    aghabalaguluzade

    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();