Merhaba;
İçinden çıkamadığım bir sorunu sizinle paylaşıp düşüncelerinizi rica
edeceğim. Şöyleki, değişik türleriden oluşan (Text, Enum, Boolean vs)
datanın saklanması ve kullanması sorunun adı. Bir senaryo ile
anlatayım:

A şahsı İsim(Text), Şehir(Combobox), Evli-Bekar(Checkbox), Yaş(Number)
gibi alanlar ilave ederek form oluşturuyor. Bu form public'tir ve
formu dolduran diğer internet kullanıcıları var. Bizim A şahsı da
Table yapısında bu alanları görüyor ve sıralama, benzerlerini ayırt
etme gibi olanaklara sahip olabiliyor.
Bir kaç kişinin doldurduğu form A Şahsına Aşağıdaki gibi görünüyor:

# | İsim                     | Şehir                  | Medeni Hal
--+---------------------------+-------------------------+------------------
1 | Ali                       | Ankara                | Evli
2 | Veli                     | İstanbul               | Bekar
...
..
.

vs.

B Şahsı ise bunlarla ilgisi olan veya olmayan bir yapıda veri formu
oluşturuyor. O da diğerlerine bu formu doldurtuyor. B Şahsı da formdan
gelen verileri yukarıdaki şekilde inceleme olanaklarına erişiyor.

Umarım örnek yapmak istediğimi anlatmıştır. Benim sorunum bu farklı
çeşitte verileri saklama koşulu. Aklıma birkaç seçenek geliyor.
Sizlerle paylaşıyorum, bu veya başka türlü düşünceleriniz için
şimdiden teşekkürler.

1. Her Oluşturulan form için bir tablo oluştururum (form_table_1,
form_table_2 gibi) ve form alanlarına göre tablo alanları oluştururum.
Doldurulan formu ilgili tabloya kaydederim. bu sayede verilerin SQL
esnekiğinde analizini yapabilme olanağına kavuşurum. Ama çok sayıda
tablo hiç mantıklı gelmiyor ve VeriTabanına ne gibi dezavantajlar
katar bilmiyorum.

2. Gelen veriyi dizinin ilgili elamanlarına kaydederim. Dizi[1] bana
array('isim' => 'Veli', 'Şehir' => 'İstanbul', 'Medeni Hal' => 'Bekar'
) değerini verir. bu diziyi serialize eder forma ait dosyay
kaydederim. Okurken de dizi olarak elimde bulunduğu için PHP nin geniş
dizi fonksiyonlarından yararlanabilirim. Ama serialize bu kadar büyük
(Örneğin: 5000*5) boyutlarda bir diziyi çevirebilirmi? bir sınırı
varmıdır?

3. array('isim' => 'Veli', 'Şehir' => 'İstanbul', 'Medeni Hal' =>
'Bekar' )  şeklinde gelen veriyi serilize eder id, form_id, data
alanları olan tablonun data alanına kaydederim. kullanırken nasıl
sorgular çekerim emin değilim. mesela sıralama nasıl yaparım
bilmiyorum.

benim aklıma gelen yöntemler bunlar ama çok fazla akıllıca gelmiyor.
İlginç olduğunu düşündüğüm bu problem için düşüncelerinizi bekliyorum.

PS: Google Docs da buna çok benzer bir uygulama var. Yeni bir form
oluştur diyerek bunu görebilirsiniz.
Örnek Form Linki:
http://spreadsheets.google.com/viewform?key=p2D-4c-fT0DKBPYbyIbZWIA
Örnek Sunum Linki:
http://spreadsheets.google.com/ccc?key=p2D-4c-fT0DKBPYbyIbZWIA


Saygılarımla....
İyi Akşamlar
--
Elvin Şiriyev
http://siriyev.net
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap