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
