[Linux-programlama] Re: Dinamik veri depolama ve okuma

---------

[Linux-programlama] Re: Dinamik veri depolama ve okuma

From: Nesimi ACARCA <nesimia.com_at_gmail.com>
Date: Fri, 20 Feb 2009 11:12:14 +0200
Message-ID: <60bf9c0902200112t5df67164k4b2d9d3ecce34079@mail.gmail.com>

öðleden sonra görüþelim o zaman :)

bu arada sizin sorgu tek satýr döndermiyor mu?
*Ad Soyad:deneme deneme,Cinsiyet:Erkek,Yaþýnýz:16-30,Kullandýðýnýz
Diller:php, diðerleriAd
Soyad:nesimia,Cinsiyet:Erkek,Yaþýnýz:22-25,Kullandýðýnýz Diller:java, php,
diðerleri

gibi

*

2009/2/20 Elvin Þiriyev <elvin_at_siriyev.net>

> *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 <nesimia.com_at_gmail.com>
>
>> 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 <elvin_at_siriyev.net>
>>
>> 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 <nesimia.com_at_gmail.com>
>>>
>>> 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 <elvin_at_siriyev.net>
>>>>
>>>>> 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Ð <anil.karadag_at_gmail.com>
>>>>>
>>>>> 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 <elvin_at_siriyev.net>
>>>>>>
>>>>>>> * TEKRARDIR
>>>>>>>
>>>>>>> http://spreadsheets.google.com/viewform?key=p2D-4c-fT0DKBPYbyIbZWIA%f6rne%f0indeki 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
>>>>>>> Linux-programlama_at_liste.linux.org.tr
>>>>>>> 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
>>>>>> Linux-programlama_at_liste.linux.org.tr
>>>>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Elvin Þiriyev
>>>>> http://siriyev.net
>>>>>
>>>>> _______________________________________________
>>>>> Linux-programlama mailing list
>>>>> Linux-programlama_at_liste.linux.org.tr
>>>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Nesimi ACARCA
>>>> www.nesimia.com
>>>>
>>>> _______________________________________________
>>>> Linux-programlama mailing list
>>>> Linux-programlama_at_liste.linux.org.tr
>>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>>
>>>>
>>>
>>>
>>> --
>>> Elvin Þiriyev
>>> http://siriyev.net
>>>
>>> _______________________________________________
>>> Linux-programlama mailing list
>>> Linux-programlama_at_liste.linux.org.tr
>>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>>
>>>
>>
>>
>> --
>> Nesimi ACARCA
>> www.nesimia.com
>>
>> _______________________________________________
>> Linux-programlama mailing list
>> Linux-programlama_at_liste.linux.org.tr
>> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>
>>
>
>
> --
> Elvin Þiriyev
> http://siriyev.net
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>

-- 
Nesimi ACARCA
www.nesimia.com

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Fri 20 Feb 2009 - 10:00:37 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.