Aspire
Koineks
  • 26-06-2014, 09:50:16
    #1
    1/2
    Daha önceden attribute mantığı şeklinde bir konu açmıştım kafamda bir mantık oluşturdum fakat ne kadar performanslı olur bilemiyorum çünkü binlerce veri girişi olacak. Öncelikle yaptığım işi anlatayım. Sistemde marka oluşturma var ve her markanın ürünlerinin özellik setleri farklılık gösterebiliyor. Bu üzden yeni form alanlarına ihtiyaç duydum. Ürün ekleme kısmında önce marka seçtirip ona göre form alanı çıkartıyorum. Çıkan form alanlarını da şöyle oluşturuyorum. Marka eklerken örneğin: Bosch markası bu markaya ait bir tane tablo oluşturuyorum ve içine otomatik olarak id ve productid şeklinde 2 sütunu otomatik olarak tanımlıyorum. Yani tablo yapısı başlangıç olarak

    xyz_bosch_attr

    id, productid

    şeklinde oluyor. Daha sonra birde xyz_attributesets şeklinde bir tablom var. Burada da form biçimlerini ve hangi markaya ait olduklarını tutup ürün ekleme sayfasında bir fonksiyon aracılığı ile bunları forma dönüştürüp kullanılabilir hale getiriyorum.

    Şimdi attributesets kısmına tanımladığım form elemanlarına ait name değeri ile bu form elemanını oluştururken ait olduğu tabloya da bu ismi kullanarak bir sütun oluşturuyorum. Örneğin name değeri bosch_color olan bir input için xyz_bosch_attr tablosuna bosch_color adında bir sütun oluşturup ürün ekleme sayfasındaki girilen değeri bu tabloya ürün numarası ile birlikte kayıt ediyorum.

    Tanımlanmış attribute setlerim:



    Ürün ekleme sayfasında göründüğü şekil:



    markaya göre oluşturduğum özellik tablosu sütunlarına göre veri kaydını yaptığım sorgum şu şekilde:

    $database->prepare('insert into tm_'.findbrand("1").'_attr ('.$echorows.') values ('.$echodatas.')')
    Bu kodun çıktısı da şu şekilde:

    insert into tm_bosch_attr (id, productid, bosch_voltage, bosch_consumption, bosch_dimensions, bosch_weight, bosch_ductairvelocity, bosch_color, bosch_material, bosch_humidity, bosch_temperature, bosch_sensitivity ) values ( :id, :productid, :bosch_voltage, :bosch_consumption, :bosch_dimensions, :bosch_weight, :bosch_ductairvelocity, :bosch_color, :bosch_material, :bosch_humidity, :bosch_temperature, :bosch_sensitivity ) )
    Böyle bir döngü içerisinde ne gibi bir problemle karşılaşırım? Bunları nasıl aşabilirim?
    Ticari işlemler için uyarıdır. Lütfen dikkate alınız.
  • Sponsor Reklam