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?
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.
Ek;
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.
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.
Alıntı yapılan: Krips Je - 02 Mayıs 2025, 03:18:13Ek;
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?
Alıntı yapılan: Backup - 02 Mayıs 2025, 09:03:03Benim 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
Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:19:10Alıntı yapılan: Krips Je - 02 Mayıs 2025, 03:18:13Ek;
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.
Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:21:15Alıntı yapılan: Backup - 02 Mayıs 2025, 09:03:03Benim 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.
Alıntı yapılan: Krips Je - 02 Mayıs 2025, 13:47:43Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:19:10Alıntı yapılan: Krips Je - 02 Mayıs 2025, 03:18:13Ek;
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
Alıntı yapılan: Backup - 02 Mayıs 2025, 14:13:49Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:21:15Alıntı yapılan: Backup - 02 Mayıs 2025, 09:03:03Benim 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
Alıntı yapılan: doqu10 - 02 Mayıs 2025, 14:18:57Alıntı yapılan: Krips Je - 02 Mayıs 2025, 13:47:43Alıntı yapılan: doqu10 - 02 Mayıs 2025, 12:19:10Alıntı yapılan: Krips Je - 02 Mayıs 2025, 03:18:13Ek;
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 :)