CRUD işlemleri ile sadece (sıkıcı) veritabanı sorgularını demek?
Sen gibi kolayca veritabanı içeriği türleri arasında birkaç ortak alanlar dışında, belirli bir içerik türü için tüm verileri bir metin alanında bir tefrika ilişkisel dizi olarak kurulum depolanır böylece.
Bu şekilde sadece CRUD fonksiyonları geçirilen veriler sadece körü körüne tefrika beri herhangi bir içerik türünü CRUD sorgular 1 set gerekir.
Örneğin, içerik başlık, oluşturulan / güncellenme tarihi, etiketleri ve kısa bir açıklama ortak veri olarak kabul edilir beyan söylüyorlar. Oradan bir blog ve bir sayfa içerik türü var.
Ben belki gibi bir veritabanı tablosu oluşturmak olacaktır:
CREATE TABLE `content` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR NOT NULL,
`short_description` TEXT NOT NULL,
`tags` TEXT ,
`data` TEXT ,
`content_type` INT NOT NULL,
`created_at` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL,
PRIMARY KEY (`id`)
)
* (Devam edin ve biz CONTENT_TYPE için başvuru tabloları oluşturmak olacak varsayıyorum) *
Blog "pingbacks" ve sayfa vücuda hiçbir şey ama gerektirebilir gibi verileri gerektirebilir ederken, sadece bir blog için aşağıdaki örnekte olduğu gibi bir şey çıktı depolamak:
$data = serialize(array(
"body" => "Lorem ipsum",
"pingbacks" => array()
));
Eğer içerik türüne göre seçilen bir forma düzenleme için verileri unserialize veritabanından veri kapmak zaman güncellemeler, kolaydır. Aynı şekilde çalışır gösteriliyor, sadece içerik türüne göre bir şablon kapmak ve dizgilenmemiş veri dizisi gönderin. Şablon bir $ veri ['pingbacks'] alır sadece, veri depolanan nasıl endişe gerekiyor asla.
Formlar için, benim önerim, anti OOP sözden ve bir form nesil kütüphane bulmaktır. Eğer Zend_Form Zend_Config ve Zend_Validate gelen kullanarak çerçeveden ayıklamak Eğer Zend Framework (bütün Zend_Config Bu durumda tutarındadır ) XML ve INI dosyaları yüklemek ve travers için uygun bir arayüz hayat gerçekten güzel yapar. Sen gibi "ortak alanlar" kaldırarak, filtrelenmiş verileri kapma, (içerik türü kapalı tabanlı XML kapma), XML dosyaları her içerik türü için formu tanımlamak ve yapacağını hepsi sadece sayfanızdaki formu sıva olabilir Daha sonra veritabanına arta kalan ne serileştirip, oluşturulan / güncellenen tarihleri isim. (Eğer sıkı olmasını istemiyorsanız) Belirli bir içerik türü için şema hiçbir bilgisi gereklidir.
Kişisel olarak bir kenara Ben çok (Zend_Validate ve Zend_Config ile) Zend_Form kapma gibi bir ORM / veritabanı soyutlama katmanı olarak Doctrine kullanarak içine bakmak öneririz rağmen. Bunu veritabanı işlemleri çalışan gelince en azından Doktrini hayatınızı çok daha kolay hale getirecek bulabilirsiniz.