GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi
19 Aralık 2025, 12:24:43

Mysql Orm

Başlatan doqu10, 02 Mayıs 2025, 02:29:22

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

doqu10

Arkadaşlar mysql r33 versiyonunda orm diye bir şey gelmiş bir video izledim ve kaynaktan okudum ama tam anlayamadım. Sql komutlarını kullanmadan veri çekip kaydetmeye yarıyor galiba. Bu konu hakkında bilgisi olan arkadaş varsa yardımcı olabilir mi? Ayrıca bu daha hızlı ve kolay bir yöntem mi acaba?


Krips Je

MySQL R33 sürümünde gelen ORM desteği sql sorgularını manuel yazmadan veri çekme ve kaydetme işlemlerini kolaylaştıran bir yapıdır. ORM nesne yönelimli programlama mantığıyla veri tabanındaki tabloları doğrudan kod tarafında nesneler gibi kullanmanıza olanak tanır. Yani dostum veritabanı işlemlerini SQL yazmadan, fonksiyonlar aracılığıyla gerçekleştirebilirsin. Bu hem kodun okunabilirliğini artırır hem de hata riskini azaltır. Elbette doğru kullanıldığında daha hızlı ve pratik sonuçlar elde edilebilir. Ancak öğrenme aşamasında yapıyı iyi kavramak önemlidir.

"Kodunu yaz, gerisini compiler düşünsün." - Meçhul Yazılımcı
    

Krips Je

Ek;

PAWN Kodu: Seç
new PlayerInfo[MAX_PLAYERS][orm_Player];

public OnGameModeInit()
{
    orm_Player = orm_create("players");
    orm_addvar_string(orm_Player, PlayerInfo[][pName], 24, "name");
    orm_addvar_int(orm_Player, PlayerInfo[][pScore], "score");
    return 1;
}

public OnPlayerConnect(playerid)
{
    format(PlayerInfo[playerid][pName], 24, "Player_%d", playerid);
    PlayerInfo[playerid][pScore] = 0;
    orm_insert(orm_Player, playerid);
    return 1;
}

Bu örnekte players tablosuna oyuncu adı ve skoru ekleniyor. SQL sorgusu yazmadan ORM ile veri işleniyor. Gerçek projede tablonun önceden oluşturulmuş olması gerekir bu sadece bir örnek dediğim gibi.

"Kodunu yaz, gerisini compiler düşünsün." - Meçhul Yazılımcı
    

Backup

Benim yaptığım testlerde dump işlemlerde oldukça yavaş olduğu, bellek yönetimi konusunda da başarılı olmadığı sonucuna varmıştım. MySQL konfigürasyonları oldukça iyi olduğu halde istenilen verimi alamamıştım. Belki yeni bir versiyon gelmiştir düzeltmişlerdir ama zannetmiyorum. Cache den devam etmek daha isabetli olur.


doqu10

Alıntı yapılan: Krips Je - 02 Mayıs 2025, 03:18:13
Ek;

PAWN Kodu: Seç
new PlayerInfo[MAX_PLAYERS][orm_Player];

public OnGameModeInit()
{
    orm_Player = orm_create("players");
    orm_addvar_string(orm_Player, PlayerInfo[][pName], 24, "name");
    orm_addvar_int(orm_Player, PlayerInfo[][pScore], "score");
    return 1;
}

public OnPlayerConnect(playerid)
{
    format(PlayerInfo[playerid][pName], 24, "Player_%d", playerid);
    PlayerInfo[playerid][pScore] = 0;
    orm_insert(orm_Player, playerid);
    return 1;
}

Bu örnekte players tablosuna oyuncu adı ve skoru ekleniyor. SQL sorgusu yazmadan ORM ile veri işleniyor. Gerçek projede tablonun önceden oluşturulmuş olması gerekir bu sadece bir örnek dediğim gibi.
Hocam Türkçe anlatımlı kaynak var mı acaba elinizde?


doqu10

Alıntı yapılan: Backup - 02 Mayıs 2025, 09:03:03
Benim yaptığım testlerde dump işlemlerde oldukça yavaş olduğu, bellek yönetimi konusunda da başarılı olmadığı sonucuna varmıştım. MySQL konfigürasyonları oldukça iyi olduğu halde istenilen verimi alamamıştım. Belki yeni bir versiyon gelmiştir düzeltmişlerdir ama zannetmiyorum. Cache den devam etmek daha isabetli olur.
Galiba cache daha iyi hocam bu orm yazılış şeklini de tam olarak anlayamadım


Krips Je

Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:19:10
Alıntı yapılan: Krips Je - 02 Mayıs 2025, 03:18:13
Ek;

PAWN Kodu: Seç
new PlayerInfo[MAX_PLAYERS][orm_Player];

public OnGameModeInit()
{
    orm_Player = orm_create("players");
    orm_addvar_string(orm_Player, PlayerInfo[][pName], 24, "name");
    orm_addvar_int(orm_Player, PlayerInfo[][pScore], "score");
    return 1;
}

public OnPlayerConnect(playerid)
{
    format(PlayerInfo[playerid][pName], 24, "Player_%d", playerid);
    PlayerInfo[playerid][pScore] = 0;
    orm_insert(orm_Player, playerid);
    return 1;
}

Bu örnekte players tablosuna oyuncu adı ve skoru ekleniyor. SQL sorgusu yazmadan ORM ile veri işleniyor. Gerçek projede tablonun önceden oluşturulmuş olması gerekir bu sadece bir örnek dediğim gibi.
Hocam Türkçe anlatımlı kaynak var mı acaba elinizde?

Maalesef elimde tam anlamıyla kapsamlı bir Türkçe kaynak yok ama bazı konuları parça parça öğrenmiştim, yine de bulduğum notları veya açıklayıcı örnekleri toparlayıp paylaşabilirim. İstersen İngilizce kaynaklardan da birkaç tane önerebilirim, anlamada sorun olmazsa çok daha detaylı anlatımlar var.

"Kodunu yaz, gerisini compiler düşünsün." - Meçhul Yazılımcı
    

Backup

Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:21:15
Alıntı yapılan: Backup - 02 Mayıs 2025, 09:03:03
Benim yaptığım testlerde dump işlemlerde oldukça yavaş olduğu, bellek yönetimi konusunda da başarılı olmadığı sonucuna varmıştım. MySQL konfigürasyonları oldukça iyi olduğu halde istenilen verimi alamamıştım. Belki yeni bir versiyon gelmiştir düzeltmişlerdir ama zannetmiyorum. Cache den devam etmek daha isabetli olur.
Galiba cache daha iyi hocam bu orm yazılış şeklini de tam olarak anlayamadım

Object oriented mantığında geliştirilmiş bir şey ama tam olarak efektif kullanılamıyor. Laravel'in seeder ve model yapısı mantığında düşünebilirsiniz.


doqu10

Alıntı yapılan: Krips Je - 02 Mayıs 2025, 13:47:43
Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:19:10
Alıntı yapılan: Krips Je - 02 Mayıs 2025, 03:18:13
Ek;

PAWN Kodu: Seç
new PlayerInfo[MAX_PLAYERS][orm_Player];

public OnGameModeInit()
{
    orm_Player = orm_create("players");
    orm_addvar_string(orm_Player, PlayerInfo[][pName], 24, "name");
    orm_addvar_int(orm_Player, PlayerInfo[][pScore], "score");
    return 1;
}

public OnPlayerConnect(playerid)
{
    format(PlayerInfo[playerid][pName], 24, "Player_%d", playerid);
    PlayerInfo[playerid][pScore] = 0;
    orm_insert(orm_Player, playerid);
    return 1;
}

Bu örnekte players tablosuna oyuncu adı ve skoru ekleniyor. SQL sorgusu yazmadan ORM ile veri işleniyor. Gerçek projede tablonun önceden oluşturulmuş olması gerekir bu sadece bir örnek dediğim gibi.
Hocam Türkçe anlatımlı kaynak var mı acaba elinizde?

Maalesef elimde tam anlamıyla kapsamlı bir Türkçe kaynak yok ama bazı konuları parça parça öğrenmiştim, yine de bulduğum notları veya açıklayıcı örnekleri toparlayıp paylaşabilirim. İstersen İngilizce kaynaklardan da birkaç tane önerebilirim, anlamada sorun olmazsa çok daha detaylı anlatımlar var.
Hocam zahmet olmazsa çok memnun olurum. Biraz zorlanabilirim de inceledikçe anlarım diye düşünüyorum


doqu10

Alıntı yapılan: Backup - 02 Mayıs 2025, 14:13:49
Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:21:15
Alıntı yapılan: Backup - 02 Mayıs 2025, 09:03:03
Benim yaptığım testlerde dump işlemlerde oldukça yavaş olduğu, bellek yönetimi konusunda da başarılı olmadığı sonucuna varmıştım. MySQL konfigürasyonları oldukça iyi olduğu halde istenilen verimi alamamıştım. Belki yeni bir versiyon gelmiştir düzeltmişlerdir ama zannetmiyorum. Cache den devam etmek daha isabetli olur.
Galiba cache daha iyi hocam bu orm yazılış şeklini de tam olarak anlayamadım

Object oriented mantığında geliştirilmiş bir şey ama tam olarak efektif kullanılamıyor. Laravel'in seeder ve model yapısı mantığında düşünebilirsiniz.
Anladım hocam çok teşekkürler


Krips Je

Alıntı yapılan: doqu10 - 02 Mayıs 2025, 14:18:57
Alıntı yapılan: Krips Je - 02 Mayıs 2025, 13:47:43
Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:19:10
Alıntı yapılan: Krips Je - 02 Mayıs 2025, 03:18:13
Ek;

PAWN Kodu: Seç
new PlayerInfo[MAX_PLAYERS][orm_Player];

public OnGameModeInit()
{
    orm_Player = orm_create("players");
    orm_addvar_string(orm_Player, PlayerInfo[][pName], 24, "name");
    orm_addvar_int(orm_Player, PlayerInfo[][pScore], "score");
    return 1;
}

public OnPlayerConnect(playerid)
{
    format(PlayerInfo[playerid][pName], 24, "Player_%d", playerid);
    PlayerInfo[playerid][pScore] = 0;
    orm_insert(orm_Player, playerid);
    return 1;
}

Bu örnekte players tablosuna oyuncu adı ve skoru ekleniyor. SQL sorgusu yazmadan ORM ile veri işleniyor. Gerçek projede tablonun önceden oluşturulmuş olması gerekir bu sadece bir örnek dediğim gibi.
Hocam Türkçe anlatımlı kaynak var mı acaba elinizde?

Maalesef elimde tam anlamıyla kapsamlı bir Türkçe kaynak yok ama bazı konuları parça parça öğrenmiştim, yine de bulduğum notları veya açıklayıcı örnekleri toparlayıp paylaşabilirim. İstersen İngilizce kaynaklardan da birkaç tane önerebilirim, anlamada sorun olmazsa çok daha detaylı anlatımlar var.
Hocam zahmet olmazsa çok memnun olurum. Biraz zorlanabilirim de inceledikçe anlarım diye düşünüyorum


Güncel ve detaylı anlatım için aşağıdaki İngilizce kaynaklar oldukça faydalı, ORM yapısını anlamak ve kullanmak için.

1. https://github.com/pBlueG/SA-MP-MySQL
2. https://sampforum.blast.hk/showthread.php?tid=461766
3. https://github.com/pBlueG/SA-MP-MySQL/blob/master/example_scripts/login_system-orm.pwn

İçlerinde örnek kodlar ve açıklamalar yer alıyor. Anlamadığınız bir kısım olursa yardımcı olurum :)

"Kodunu yaz, gerisini compiler düşünsün." - Meçhul Yazılımcı