100 sorulu bir anket var. her sorunun 10 tane şıkkı var.radio buton var. kullanıcı istediği kadar şıkkı işaretleyebilir.tekar dan ankete girip anketini güncelleyebilir. veritabanında bunu nasıl tutarım tablo tasarımı nasıl olmalı.

AnketID, SoruNo, Cevap gibi yapsam yanlış olur mu?

soruldu: 17 Nis '13, 01:31

wifi's gravatar image

wifi
748384454
cevap kabul oranı: 100%

değiştirildi: 17 Nis '13, 01:40

1

İstedigi kadar işaretleyebilir demişsiniz ve radio button demişsiniz, bu ikisi farklı anlamda.

(17 Nis '13, 01:37) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
1

Evet sanırım CheckBox demek istediniz. Mesela hangi dilleri biliyorsunuz sorusuna C#, java, Pyton hepsini check edebilecek şekilde.

(17 Nis '13, 01:39) numankaraaslan numankaraaslan's gravatar image

10 lu radio buton koysam istediği kadarını seçemez mi?

(17 Nis '13, 01:41) wifi wifi's gravatar image

tek bir anket için db tasarımı yapıcam. tek tablo yani

(17 Nis '13, 01:43) wifi wifi's gravatar image
1

Genelde radio button lar aynı isimle verilir ve bir grup gibi davranır. Birisi seçildiğinde diğerinin seçimi kalkar.

(17 Nis '13, 01:43) numankaraaslan numankaraaslan's gravatar image

Kullanıcı ID'si de önemli mi?

(17 Nis '13, 01:46) mhkoca60 mhkoca60's gravatar image

Her kullanıcı için o anketin cevaplarını tutmanız gerekir. Bundan dolayıda tek tabloda bunu yapamazsınız.

(17 Nis '13, 01:47) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Kullanıcı tutmayıp anket tutabilirim. AnketID den her anket in kendi cevaplarını tutarım olmaz mı?

(17 Nis '13, 02:16) wifi wifi's gravatar image

Anketin kendi cevabı nasıl olacak ki. Sonucta kullanıcılar oylayacak bunu. Hangi kullanıcı hangi cevabı verdi.cevabın hangi soruya, sorununda hangi ankete ait oldugu zaten belli. Anket sadece bir kişi içinse!! o zaman tamm tutmayın.

(17 Nis '13, 02:19) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Cevapları ve yorumları okumadınız mı? @creseos' un yazdıgı cevabı ve onun altındaki yorumları okursanız sanırım daha iyi anlarsınız.

(17 Nis '13, 02:32) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

-1 Uygulamam için tablo tasarlayın tarzı sorular kimseye teknik açıdan birşey katmadığı gibi hayal gücünü de öldürüyor. Hangi kitabı açsan iki tabloyu nasıl biraraya getireceğini gösterirler. Çöp soru bu.

(18 Nis '13, 00:58) nurettin nurettin's gravatar image
11 yorumdan 5 tanesi gösteriliyor hepsini göster

Kullanıcı bazlı bir anket uygulaması için

Anketler (id, baslik)
Sorular (id, soru, anketId)
Cevaplar (id, cevap, soruId)
Kullanicilar(id, ad)
KullanıcıCevap(kullaniciId, cevapId, durum)

mhkoca60 'nın yorumundan sonra örnek veri

Kullanıcılar

kullanıcı1
kullanıcı2
kullanıcı3

Anketler

Anket1
---Soru1
------cevap1
------cevap2
------cevap3
------cevap4
---Soru2
------cevap5
------cevap6
------cevap7
------cevap8

KullanıcıCevaplar

cevap1 - kullanıcı1 - true
cevap1 - kullanıcı2 - false
cevap1 - kullanıcı3 - true
cevap2 - kullanıcı1 - true
cevap3 - kullanıcı1 - false
...
...
permanent link

cevaplandı: 17 Nis '13, 01:39

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288
cevap kabul oranı: 44%

değiştirildi: 17 Nis '13, 01:59

Bence KullanıcıCevap tablosu oluşturmak yerine Cevaplar'da kullaniciId ve durum alanları olmalı

(17 Nis '13, 01:50) mhkoca60 mhkoca60's gravatar image
1

kullanıcılar ve cevaplar arasında many-to-many ilişkisi var. Yani aynı cevabı birden cok kullanıcı secebilir.

(17 Nis '13, 01:54) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

@mhkoca60, cevabı güncelledim.

(17 Nis '13, 01:59) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
1

Anladım. Eyvallah :)

(17 Nis '13, 02:12) mhkoca60 mhkoca60's gravatar image

Yanlış anlamadıysam,

Bence şu şekilde olabilir. Cevaplar sabit olduguna göre indexlerini tutmanız yeterli.

AnketId | SıraNo | Kullanıcı | Soru | isaretlenenler
-------------------------------------------
13213   | 1      |   1252    | asd   | 1,5,7
56122   | 2      |   6122    | agg   | 1,2,3
....    | ...    |   ...     | ...   | ...
16881   | 100    |   5122    | jkjj  | 1,2,3,4,5,6,7

Cevaplar gerekiyorsa da cevaplar tablosu olur

index | cevap
--------------
1     | cevap1
2     | cevap2
3     | cevap3
...
permanent link

cevaplandı: 17 Nis '13, 02:06

creseos's gravatar image

creseos
2.0k468187
cevap kabul oranı: 37%

değiştirildi: 17 Nis '13, 02:09

1

Bu yazdıgınız tablo olmaz. Bir sınav uygulaması için olabilir. Çünkü her sorunun tek bir dogru cevabı vardır. Ama anket için her sorunun, farklı kullanıcıya gore farklı cevapları vardır. Yani sizin tablodaki işaretlenenler kimin için işaretlenmiştir, bu belli degil.

(17 Nis '13, 02:10) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Sonradan farkedip eklemiştim.

(17 Nis '13, 02:11) creseos creseos's gravatar image

Şimdide her kullanıcı sadece bir soruya cevap vermiş oldu. Yani 100 soru için 100 kullanıcı. Sizin bu tasarımınıza göre tablodaki satır sayısı aslında (AnketSayisi x soruSayısı x kullanıcı_sayısı) kadar olmalı. TAbi cevapları virgulle ayırdıgınızdan bu carpıma onu eklemiyorum, Ayrı yazmıs olsaydınız onuda eklemeniz gerekirdiki baya bir veri tekrarı demek.

(17 Nis '13, 02:13) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Her kullanıcı bir soruya vermiş olmadı. Mesela

AnketId | SıraNo | Kullanıcı | Soru | isaretlenenler
-------------------------------------------
13213   | 1      |   1252    | asd   | 1,5,7
56122   | 2      |   1252    | agg   | 1,2,3

verilen cevaplar alınmak istendiğinde tek yapılması gereken split

(17 Nis '13, 02:18) creseos creseos's gravatar image
1

Tablonun boyutu denildiği gibi ciddi miktarda büyümüş olacak ve veriler alındıktan sonra da ayrıca fonksiyonla yeni bir işlem yapılacak. Birden fazla tablo olursa yönetimi/okuması daha kolay olur, joinli bir select ile veriler rahatça alınır. Birden fazla tablonun zararı değil karı olur.

(17 Nis '13, 02:24) mhkoca60 mhkoca60's gravatar image
2

Cevapta yazdıgınız 100 satırlık tablo yanlıs. Yorumda yazdıgınız bir çözüm olabilir, ama tabi etkin degil. Diyelim ki 3 tane anket var, 100 tane kullanıcı var. Her anket için 100 tane soru var. Bu durumda birinci anket için 100 soru ve 100 kullanıcı demek yani 10.000 satır demek, bunu birde anket sayısı ile carpın 30.000 satır demek. Yani tablonuz 100 satırlı degil. Soruda istenileni yapar mı? Evet.

(17 Nis '13, 02:25) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image
3

Tabii ki boyut açısından yetersiz olabilir. Farklı bir yaklaşım yaptım. Fazla vaktim olmadığı için tam kurgusunu yapamadım fikir vermesi açısından yazmıştım cevabı. Değerlendirmeleriniz için teşekkürler

(17 Nis '13, 02:28) creseos creseos's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×77
×66

Soruldu: 17 Nis '13, 01:31

Görüntüleme: 2,205 kez

Son güncelleme: 18 Nis '13, 00:59

powered by BitNami OSQA