WordPress eklentiniz için özel bir veritabanı tablosu oluşturun
Çoğu durumda, eklentiler seçenekleri, meta verileri değiştirir veya yeni işlevsellik oluşturmak için mevcut tabloları (çoğunlukla gönderme tabloları) kullanır. Özel yayın türleri, özel taksonomi, görüntü manipülasyonu, galeri, kısa kod – bunların hiçbiri genellikle kendi veritabanı tablosunu gerektirmez. Bunun nedeni, WordPress veritabanı şemasının (veritabanının nasıl ayarlandığı) geliştirme için uygun olmasıdır. Mesajlar tablolar nesneleri depolamak için kullanılabilir ve Postmeta tabloları bu nesne hakkında ek bilgileri depolamak için kullanılabilir. Bununla birlikte, bazı durumlarda, bu pratik ve/veya savurgan hale gelir.
Bugünkü yazıda, yeni veritabanı tablosunun artılarını ve eksilerini, yapının nasıl belirleneceğini ve WordPress’te nasıl yapılacağını göreceğiz. Özel tablolar için düşünülüyor musunuz? Eklentiniz için özel bir tablo kullanmanız mı yoksa iki faktöre bağlı değil mi: verilerinizin yapısı ve miktarı. Sadece veri yapınız standart post modelinden çok farklıysa ve büyük miktarlarda sahip olduğunuzda özel bir tabloya ihtiyacınız olduğunu iddia ediyorum. Niyetimi kanıtlamak için, bir dizi veri noktasından oluşan haftalık raporlar oluşturmak ve depolamak için Google’ın analizini kullanan bir eklenti düşünmeye başlayalım. Buna üç şekilde yaklaşabilirsiniz:
Özel tablomuz, her hafta bir satırda analizi depolayan basit bir özel tablo yapabilir. Veritabanındaki satırlar tanımlar, analiz tarihi, okunan yayın sayısı, bağlantılar tıklanır, hangi ülkenin en fazla ziyaretçiye katkıda bulunduğu vb. Postmeta ve Postmeta’mız bir tür “analitik” özel yazı oluşturabilir ve kimlik ve analiz tarihini saklamak için kullanabilir. Daha sonra bireysel veri noktalarını saklamak için Meta Post’u kullanabiliriz. Basit diziler Özel yayınlar veya tablolar kullanmak yerine, seçenek tablosunda yalnızca bir seçenek kullanmamız gerekir. Bu, üyeleri haftalık bireysel bir sayı olacak bir dizi olacak. Her hafta veri topladığımız için, bu büyük bir veri koleksiyonu değildir. Tabii ki, ihtiyaçlarımıza uygun bir masaya sahip olmak daha kolay olacak, ancak bunu yapmadığımız için, iyi WordPress veritabanımızı sadece haftada bir kez kullanılacak bir tablo ile kirletmeye değer mi? Hayır diyeceğim, özellikle verilerimiz Postmeta Tablo Anahtar Değer yaklaşımıyla eşleştiği için. Mesajlar ve basit dizi tabloları arasında seçim yapmak kolay değildir. Örneğin, tarihsel verileri sadece bir yıl boyunca saklıyorsak, dizi gerçekten geçerli bir yaklaşım olabilir. Başlangıçta 52 üye içerecek, bu da manipüle edilmesi oldukça kolay.
Veri toplama devam ederse, beşinci yıldan sonra 260 dizi üyesini yüklemek ve manipüle etmek istemediğimiz için Post ve Postmeta yaklaşımını dikkate alacağım. “Gerçek dünyada çizgiler bazen kaçıyor, hangi yoldan alacağına karar vermek kolay değil.” Şimdi, örnekten yalnızca bir parametreyi değiştirelim ve bir şeyin değişip değişmediğini görelim. Her hafta değil, her dakika veri toplayalım. Yılda 525.948 dakika vardır, yani basit bir dizi kullanırsak, ilk yılın sonunda yarım milyondan fazla üyeye şişer. Bu, veritabanımızın etkili kullanımı değildir, çünkü herhangi bir şey hesaplamak uzun zaman alacaktır. Post ve Postmeta çözümü aynı sorunu yaşayacaktır. WordPress iyi optimize edilmiş olsa da, bu miktarda en küçük bir optimizasyon hatası yaparsanız, web siteniz durdurulabilir, kullanıcıların blogunuzda hız sorunlarını nasıl yaşayabileceğinden bahsetmemek gerekirse (yayınlar ve tüm analizler aynı şekilde saklanacaktır. Tablo). Postmeta tablonuzun her analiz için 10+ veri noktası içereceğini unutmayın, böylece meta tablonuz yılda 5.259.480 satır alacaktır. Bu, özel bir tablonun uygun olabileceği bir durumdur. Bu tablo yılda yarım milyon satırla da doldurulsa da, bu tablo diğer içeriğinizden ayrılacaktır. Veri noktası bir sütun olarak eklenebileceğinden (veya özel bir meta tablo kullanabileceğinden) daha hızlı işlemler gerçekleştirebilirsiniz.
Gerçek dünyada çizgiler bazen kaçar, hangi yoldan alacağına karar vermek kolay değildir. Size yardımcı olmak için, özel tablolar oluşturmada daha özlü olan bazı artıları ve eksileri: Proanda, veri yapınızı doğru ayarlamak için bir plan oluşturabilir
Verileri depolamak için iki veritabanı tablosu kullanmanıza gerek yok
Alanın türü ve sınırı üzerinde kontrolünüz var
Verileriniz WordPress’in diğer yönlerinden iyi ayrılmıştır
Bazı durumlarda verileri ihraç etmek daha kolay olabilir
Başvurunuz daha iyi bir ölçek olabilir
Değilse, karmaşık sorgular daha basit hale getirilebilir
Verileriniz çok daha net olabilir
Eksiklik
WordPress veritabanını bozabilirsiniz
Tablo verilerinin manipüle edilmesi daha zordur
Kendi kullanıcı arayüzünü yapmalısın
SQL hatalarına ve saldırılara karşı daha savunmasız olabilirsiniz
Pek çok işleve erişiminiz olmayacak
Veritabanınızı korumanız gerekir, belki birkaç sürümde
Eklentinin aktivasyonu, devre dışı bırakılması ve kaldırılması hakkında daha fazlasını yapmanız gerekir.
Bunu hatırlayarak, umarım ihtiyacınız olan özel tabloya karar verebilirsiniz. Eğer öyleyse, sürekli okuyun, size WordPress tarafından nasıl yapılacağını göstereceğim.
Veritabanı Tabloları Oluşturma Veritabanı tabloları etkinleştirmeden sonra yapılmalıdır. Bu, aşağıdaki yöntemleri kullanarak eklentiler ve aktivasyon kancalarına işlevler ile yapılabilir:
F2cd7abccbf87bdc0dd1b9e823542a02’nin özünü içerir
Bu işlev, eklenti kullanıcı tarafından etkinleştirildiğinde çalışır. Bu konuda daha fazla bilgi edinmek istiyorsanız, WordPress eklentisinin aktivasyonu, devre dışı bırakılması ve kaldırılması hakkında eğitimimize bakın. DBDelta () işlevini kullanarak veritabanı tablomuzu eklemek için sadece DBDelta () sahip olduğumuz işlevi kullanacağız. Bu işlevi kullanmak için bir veritabanı adına (WordPress tablo önekini kullanan), veritabanının bileşimine ve SQL sorgusuna ihtiyacımız var. Aşağıdaki örnek, web sitesi analizimizin eklentisinden ilham alarak veritabanının nasıl oluşturulduğunu göstermektedir: CBB85F6083248A874ED8C758A2916F’nin çekirdeğini içerir.
Başlangıçta düzenlememizi WordPress yapılandırma dosyasındaki bir setten aldık – bu $ WPDB değişkeninde saklandı – ve önek oradan da aldık. Son bir veritabanı adı oluşturmak için öneki kullanırız. Belirli kurallara göre biçimlendirilmiş birkaç SQL kullanarak bir veritabanı tablosu yapıyoruz. Daha sonra DBDelta () işlevini içeren ve daha sonra veritabanımızı oluşturacak olan bir dosya ekliyoruz. SQL sorgularımızı biçimlendirin, SQL sorgularımızı biçimlendirirken izlememiz gereken bir dizi kural vardır. Aşağıdakiler, Codex makalesinden alınmıştır.
SQL ifadenize her alanı kendi satırına koymalısınız.
Birincil anahtar kelimesi ile birincil anahtarınızın tanımı arasında iki boşluğunuz olmalıdır.
Anahtar kelimeyi eşanlamlı dizinine kullanmalısınız ve en az bir anahtar eklemeniz gerekir.
Alanın adında apostrof veya backtick kullanmamalısınız.
Alanın türü tüm küçük harfler olmalıdır.
Tablolar ve güncellemeler oluşturma gibi SQL anahtar kelimeleri büyük harf olmalıdır.
Bu, elbette SQL’in kendisi değil, dbDelta () işlevi ile zorlanır. Bu işlev, tabloyu gerektiğinde verimli ve güvenli bir şekilde güncellemek için veritabanı şeması arasındaki farkı bilmelidir. Bu nedenle, SQL, ‘özet’ işlevini kolayca sağlayacak şekilde biçimlendirilmelidir. Ekranı yeni ekledim ve yukarıya tıkladım, ortalama sayfa ekranını dakikalar içinde nasıl ekleyerek? Yeni bir sütun gerektirecek ve DBDelta () ‘nın faydalı olduğu yer burasıdır. Bir şey yapmadan önce, sürüm numaramızı eklentimize eklediğimizden emin olmalıyız. Bu, veritabanındaki değişikliklerin ne zaman gerekli olduğunu belirlememize yardımcı olacaktır.
Core 8BCD636B3612899247BBAD1508C4348 içerir
Sürüm 1.x boyunca veritabanı şemasında hiçbir şeyin değişmediğini varsayalım. Sürüm 2.0’da sütun ekliyoruz. İşte böyle çalışıyor:
Çekirdek 89D021B9BF28A83D3656D9597E7ADCCB içerir
Multisite kurulum için bu eklenti işlevini yapmamıza yardımcı olacak bir sütun, blog_id ekledim. Gördüğünüz gibi, bugün kullanılan veritabanı sürümünün eklenti sürümünden daha düşük olup olmadığını tespit ettim. Aynı biçimi kullandıysak, sütun eklemek için. DBDelta Function () Bizim için tüm değişiklikleri işleme, yalnızca doğru veritabanı şemasını sunmamız gerekir. Sonuç Kendi masanızı yapmak genellikle gerekli değildir. Bununla birlikte, DBDELTA’nın işlevi, modüler, esnek ve tutulması kolay tablolar oluşturmamızı sağlar. Bir tabloya ihtiyacınız varsa, bu yaklaşımı kullanmaya her zaman dikkat etmelisiniz, çünkü özel bir tabloyu wordPress dostu bir şekilde tamamlamanın tek yolu budur. Kendi veri tabanı tablosunu ekleyen eklentiyi biliyorsanız, aşağıdaki yorumlarda bize söyleyin ve belki de doğru olup olmadığını görmek için kontrol edebiliriz! Etiket: Geliştirici