Ben (bir-çok dernekleri ile) tek bir CSV dosyasından üç model için veri almak gerekecek bir uygulama geliştiriyorum. Ben bir Datafile modelini kurmak ve var dosya yükleme / ayrıştırma işlemek için denetleyicisi. Şu anda, ayrıştırma ve kayıtlarını kaydetmek için tüm mantık denetleyicisi olduğunu. Bu bana, birkaç farklı modellere kaydetmek kaydettiğiniz kayıtları için kimliklerini almak ve dosya ayrıştırıldı edilirken gerekli dernekler oluşturmak için olanak sağlar.
"Şişman modeli, sıska denetleyici" ilkesi hakkında düşünme, ben gerçekten sadece veri işlerken bir denetleyicisi kod yaklaşık 150 hatları var gerçekleştirdi. Ben bir model bu hareket bakarak başladı gibi olsa, ben ((dernek kimliklerini bilmeden) diziler içine bu tüm verileri işlemek zorunda, ve kaydedilecek denetleyiciye geri göndermek istiyorsunuz sonucuna modeli olamaz beri ) diğer modellerden yöntemleri çağırır. Ben alma dosyasında yaklaşık 1500 kayıtları sahip tahmin ediyorum. Ben bir tek dizi aynı anda birkaç modellere veri kaydetmek için saveAll()
yöntemi vardır CakePHP'ye, kullanıyorum.
Başka bir seçenek üç modelin her biri ayrı ayrı o gerek yoktur herhangi bir veri yok sayarak, dosyayı ayrıştırmak sahip olacaktır. Bu sürece ben doğru sırayla modellere göndermek gibi, mümkün, ve "belongsTo" modelleri aramak için muhtemelen ilişkili kayıtların bir listesini vermelidir.
Yani - bu seçeneklerden herhangi bir tavsiye?
- Olduğu gibi Datafile denetleyicisi ayrıştırma kodu bırakın.
- Datafile kontrolörü yoluyla kaydedilmiş olması büyük bir dizi geri pas, sonra Datafile modeli tüm ayrıştırma kodu taşımak.
- Dernekler belirlenmesi için ek listeleri ile birlikte, üç modellerin her ayrı ayrı dosya gönder.