katılmak ya da başka bir model çağrı sql?

4 Cevap php

İki tablo (madde ve kategori, ben kendileri için konuşmak düşünüyorum) ve ilişkili iki modeli nesneleri vardır. Ben veritabanından 1 öğe getirir işlevinde bir tasarım kararları bakan değilim. Ben de öğenin kategorisini (isim, sadece id) döndürmek için bu yöntem gerekir.

İki seçeneğiniz var:

  • Madde modelde, SQL veri hızlı almak için birleşim kullanın.
  • Madde modelde, daha iyi kod, verileri almak için kategori modeli diyoruz.

Hangi yapmalıyım? Ben de, vb kategorilerin bir listesini gösteren olacak, çünkü herhangi bir durumda bir kategori modele ihtiyaç

4 Cevap

Eğer gerekiyorsa her zaman daha sonra optimize edebilirsiniz. Birçok durumda, ikinci seçim havai önemsiz olacaktır.

Zaman çok önemsiz değildir. Ne kodunu tutar kimle zaman (başka? Birisi?) Olduğunu.

Kod bu temiz, kategori diyoruz ve bu "çok yavaş" olduğu ortaya çıkarsa, o zaman değiştirin.

Prematüre optimizasyonu tüm kötülüklerin köküdür.

Çok daha fazla ayrıntı bilmeden, bu uygulamanın hızı kritik bir kısmı ise ilk seçenek doğru yalın eğiliminde olacaktır. Sadece emin kodu da yorumladı olun. Eğer oynamak için hız ve iki çalıştırma arasında zaman içinde çok fazla fark yok, ben ikincisini yapardım. Eğer iki yıl içinde geri gelmek ne zaman öğesi modeli aksi kategori bilgileri çekerek neden, bu çok daha az mantıklı olacak çünkü.

Ben de karşı karşıya ettik ... Genel olarak ben performans arıyorsanız eğer katılmak için gitmek gerektiğini buldum soru. Hızlı bir sorun değilse, ikinci bir gitmek.

Eğer o zaman neden bunu / önbellek kaydetmek ve yerine bir sql kategori adlarını katılmak arama için aynı nesne kullanmayın, zaten kategoriler almak için gidiyoruz eğer. Bu durumda sql katılmak olduğunu argümanı artık daha hızlı bir dereceye kadar ihmal edilebilir olacaktır

Bu hız kritik verilerin büyük miktarda olmadıkça, o zaman ben muhtemelen sürdürmek en rahat yöntem ne olursa olsun gitmek istiyorum.