*form_fields* tablomun bir de *options* alanı var. veri tiplerini orada tutuyorum.
vakitiniz azsa: teşekkür ederim. sorunumu öyle yada böyle tavsiye ettiğiniz yöntemle çözeceğim. saygılar sunarım. vaktiniz bolsa: "sorguyu nasıl yaparız" ve "sorguyu nasıl yaparsınız" diye sordum bile. çünki bunun çözümünde yeni birşeyler öğreneceğiz gibime geliyor. 2009/2/20 Nesimi ACARCA <[email protected]> > artık orası size kalmış tek tek mi yoksa join mi yaparsınız bilemem :) Ama > bana, "sorguyu nasıl yaparız?" diye soruyorsanız yardım etmeeye çalıısıırm. > > Hatta alanlar tablosuna "veri tipi" alanı açarak, kullanıcının gireceği > verilerin metin mi, sayı mı, tarih mi ...vb. şeklinde belirtebilirsiniz. > > 2009/2/20 Elvin Şiriyev <[email protected]> > > Evet. EAV mantığı bu nesimi bey. şimdi de bunun sorgusunda takıldım. >> >> tek sorguyla (ve mümkünse tek SELECT ile (JOIN olabilir :P ) ) bunu >> >> ____________________________________________________ >> *Ad Soyad | Cinsiyet | Yaşınız | Kullandığınız Diller >> >> ------------------------------------------------------------------------------------------- >> *deneneme deneme | Erkek | 16-30 | php, diğerleri >> nesimia | Erkek | 22-25 | java, php, diğerleri >> >> ------------------------------------------------------------------------------------------- >> >> şekline sokmak için nasıl bir sorgu kullanabilirim. >> >> *Geldiğim Nokta:* >> Sorgu: >> *SELECT `fs`.`time` , @group:= GROUP_CONCAT(DISTINCT CONCAT( `ff`.`name` >> , ':', `fd`.`value`) >> ORDER BY `ff`.`id` ASC >> SEPARATOR ',') >> FROM `form_datas` AS `fd` >> INNER JOIN `form_submits` AS `fs` ON ( `fs`.`id` = `fd`.`form_submit_id` ) >> INNER JOIN `forms` AS `f` ON ( `f`.`id` = `fs`.`form_id` ) >> INNER JOIN `form_fields` AS `ff` ON ( `ff`.`id` = `fd`.`form_field_id` ) >> WHERE `f`.`id` =1 >> GROUP BY `fs`.`id`* >> Sonuç: >> *Ad Soyad:deneme deneme,Cinsiyet:Erkek,Yaşınız:16-30,Kullandığınız >> Diller:php, diğerleri >> Ad Soyad:nesimia,Cinsiyet:Erkek,Yaşınız:22-25,Kullandığınız Diller:java, >> php, diğerleri* >> >> NOT: benim tablo yapında fazladan bir form_submits(form_submit_id) var. bu >> da bir formdan ve farklı kişilerden gelen verileri ayırt edebilmek için. >> Kafaları karıştırmasın. >> >> >> Saygılar. >> >> >> 2009/2/20 Nesimi ACARCA <[email protected]> >> >> formalar >>> *id | isim | aciklama* >>> 1 | Yazılım Dili Anketi | >>> >>> alanlar >>> *id | fid | isim |veritipi | aciklama* >>> 1 | 1 | Ad Soyad | Metin | >>> 2 | 1 | Cinsiyet | Metin | >>> 3 | 1 | Yaşınız | Metin | >>> 4 | 1 | Kullandığınız Diller | Metin | >>> >>> veriler (satırlar) >>> *id | aid | deger* >>> 1 | 1 | deneme deneme >>> 2 | 2 | Erkek >>> 3 | 3 | 16-30 >>> 4 | 4 | php, diğerleri >>> 5 | 1 | nesimia >>> 6 | 2 | Erkek >>> 7 | 3 | 22-25 >>> 8 | 4 | java, php, diğerleri >>> >>> fid = form id >>> aid = alan id >>> >>> Her form için form tablosunda bir kayıt açarsınız. Açılan formaların >>> alanları içinde alanlar tablosunu, bu alanlara veri girmek içinde veriler >>> tablosunu kullanabilirsiniz. >>> >>> Mesela, verileri okumak için. >>> 1-Form tablosundan formun adını ve id nosunu al >>> 2-fid ye göre veri girilecek sütunu olusturup, bu sütuna girilecek >>> verileri "veriler" tablosunda alıp yukarıdan aşağı ya doğru gir. >>> 3-alanlar tablosunda ki veriler bitene kadar 2. adımdan devam et. >>> >>> (2. ve 3. adımlarda iç içe döngü olduğunu unutma) >>> >>> şuan aklıma gelen böyle bisi, umarım yanlış anlamamışımdır. :) >>> >>> >>> 2009/2/19 Elvin Şiriyev <[email protected]> >>> >>>> Anıl hanım, MySQL ve PHP kullandığım için sanırım django işimi >>>> göremeyecek. >>>> araştırmalarımda "EAV model" denilen bir veri tabanı modeline rasladım. >>>> aslında kullandığımız birşey, her form için bir tablo oluşturmaktan daha >>>> mantıklı geliyor. Ama yavaş olacağını düşünüyorum. başka bir olanak da >>>> veritabanına serialize ederek kaydetmek, bu zaman da sıralama vs işlemleri >>>> mümkün olmayacak veya performans sıkıntısına neden olacak. >>>> >>>> Karar veremedim. >>>> >>>> İlginiz için teşşekkürler. >>>> >>>> 2009/2/19 ANIL KARADAĞ <[email protected]> >>>> >>>> Django'yu biliyor musunuz bilmiyorum ancak son 2 aydır bu güzel >>>>> framework ile ugrasiyorum. Bu framework kendine özel bir model api ve >>>>> database api içermektedir. >>>>> >>>>> Django'da veri tabanında yer alan bir tablo model api kurallarına >>>>> uygun bir sekilde hazırlanan bir class a eşittir. >>>>> >>>>> Ornek >>>>> >>>>> Class student(models.Model): >>>>> first_name= models.CharField(max_lenght=20, null=True) >>>>> last_name= models.CharField(max_lenght=30, null=True) >>>>> note= models.DecimalField(max_digits=5, places=2, default=0) >>>>> >>>>> kod blugunun sql carsiligi: >>>>> >>>>> create table student (first_name varchar(20) default null, last_name >>>>> varchar(30) default null, note decimal(5,2) default 0,) dir ve buna ek >>>>> olarak otomatik artan bir id kolonu. >>>>> >>>>> Sende formundaki degerlere gore tablosunu bu sekilde uretebilirsin. >>>>> >>>>> http://www.djangoproject.com/ >>>>> http://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs >>>>> >>>>> 2009/2/19 Elvin Şiriyev <[email protected]> >>>>> >>>>>> * TEKRARDIR >>>>>> >>>>>> http://spreadsheets.google.com/viewform?key=p2D-4c-fT0DKBPYbyIbZWIAörneğindeki >>>>>> gibi dinamik olarak oluşturulan formdan gelen verileri >>>>>> http://spreadsheets.google.com/ccc?key=p2D-4c-fT0DKBPYbyIbZWIA daki >>>>>> gibi sundabilmek için nasıl bir veritabanı yapısı oluşturmalıyım? >>>>>> >>>>>> Tavsiyelerinizi bekliyorum. >>>>>> >>>>>> Teşekkürler ... >>>>>> >>>>>> >>>>>> -- >>>>>> Elvin Şiriyev >>>>>> http://siriyev.net >>>>>> >>>>>> _______________________________________________ >>>>>> Linux-programlama mailing list >>>>>> [email protected] >>>>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Anıl KARADAĞ >>>>> Cihan Bilişim A.Ş. - Yazılım Geliştirme Uzmanı >>>>> GYTE- Bilgisayar Müh. Yüksek Lisans öğrencisi >>>>> http://anilkaradag.info/blog >>>>> >>>>> _______________________________________________ >>>>> Linux-programlama mailing list >>>>> [email protected] >>>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama >>>>> >>>>> >>>> >>>> >>>> -- >>>> Elvin Şiriyev >>>> http://siriyev.net >>>> >>>> _______________________________________________ >>>> Linux-programlama mailing list >>>> [email protected] >>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama >>>> >>>> >>> >>> >>> -- >>> Nesimi ACARCA >>> www.nesimia.com >>> >>> _______________________________________________ >>> Linux-programlama mailing list >>> [email protected] >>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama >>> >>> >> >> >> -- >> Elvin Şiriyev >> http://siriyev.net >> >> _______________________________________________ >> Linux-programlama mailing list >> [email protected] >> http://liste.linux.org.tr/mailman/listinfo/linux-programlama >> >> > > > -- > Nesimi ACARCA > www.nesimia.com > > _______________________________________________ > Linux-programlama mailing list > [email protected] > http://liste.linux.org.tr/mailman/listinfo/linux-programlama > > -- Elvin Şiriyev http://siriyev.net
_______________________________________________ Linux-programlama mailing list [email protected] http://liste.linux.org.tr/mailman/listinfo/linux-programlama
