Ne PHP / MySQL DB bir dizi depolamak ve almak için en iyi yoldur

2 Cevap php

Ben bir veritabanından url bağlantıları çekin ve bir sayfada 50 gösterecek bir uygulama inşa etmek istedim diyelim. Ben sadece bir örnek olarak bağlantıları kullanarak duyuyorum.

Ben birden fazla değer saklamanıza olsaydı, her bağlantı / kayıt için 1 mysql alana bir dizi yayınlanmıştır neler.

Her Link 5 ürün varsa, ben bir bağlantı tasarrufu için performans için en iyi ne olurdu 5. sayfadaki öğelerin, virgülle ayrılmış 5 öğelerin listesini, ya da ben json encode / decode kullanabilirsiniz, bir dizi olabilir DB ve implode gibi sayfa üzerinde gösteren bir şey / madde, json kodlama / kod çözme listesi ile patlayabilir veya dizi un-serialize / serialize?

2 Cevap

Eğer birden fazla tablo kullanmak istemiyorsanız Serileştirme muhtemelen en iyisidir. Nedeni özel karakterler ile ilgilenir olmak. Eğer bir virgülle ayrılmış listesini kullanırsanız, o zaman zaten onları virgül var değerler hakkında endişe gerekir. Zaten bu ile / unserialize fırsatlar dizgeleştirir. Ama sorun, diziler oldukça basit gelebilir rağmen Serileştirme, korkunç hızlı değil olmasıdır.

En iyi bu daha sonraki bir tarihte çok daha kolay arama ve / veya veri işlemek için izin verir gibi birden çok tablo var hala. Aynı zamanda (arka ana tabloda ebeveyne bunları ilgili) ikinci tabloya birden fazla kayıt ekleyen bir SQL oluşturmak için bir döngü oluşturmak için PHP zor değildir.

http://stackoverflow.com/questions/761170/optimal-way-to-store-retrieve-array-in-table: MEZUNLARI, SO buna benzer birçok soru vardır

En iyi yolu, bunun için sormak beri, kaydetmek için gidiyoruz verileri tanımlayan bir tablo oluşturmak, ve sonra her öğe için bir satır eklemek için. Sizin örnekte, bu iki tablo gerektiği anlamına gelir; pages ve links, links.page_id atıfta yabancı bir anahtar olduğu yerde pages.id.