Twitter'daki timeline sql sorgusunu nasıl yazabilirim? Takip ettirdikten sonra diyelim ki 1000 kişiyi takip ediyor kullanıcı ve takipçi verilerini görebiliyor. Where in içersinde bu şekilde 1000 tane varyasyon olması performans sorunları doğrururmaz mı?. Bu konuda bilgi verebilecek olan var mı? anahtar kelimede yeterli olur.

soruldu: 16 Oca '13, 03:03

blue-code's gravatar image

blue-code
835812
cevap kabul oranı: 0%

değiştirildi: 16 Oca '13, 04:35

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

1

Where içerisinde 1000 tane varyasyon olması ne demek?

(16 Oca '13, 03:31) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

yapmaya çalıştığım tam olarak twitter timeline. yani 1000 kişiyi takip ediyorum. 1000 kişinin attığı twetleri okuyorum. Bu sql sorgunusu nasıl yazılabilir, kafama takılına kısım burası. WHERE içersinde 1000 tane kullanıcının id lerini yazmak külfetli olacak bir özellik.

(17 Oca '13, 02:07) blue-code blue-code's gravatar image
1

Yanlış hatırlamıyorsam ben buna benzer bir olayı şöyle halletmiştim. Sen se buna benzer bir şekilde sorununu çözebilirsin. Kişinin tablosunda ek olarak örneğin takip_edilenin_epostasi olarak bir alan açılır, sonra birisi takibe alındığında takip_edilenin_epostasi na eposta eklenir. Daha sonra kişinin akışlarında (timeline) varsa e_postaya ait yazılar görüntülenir. uyebilgilerinin tutulduğu kisi_tablo adında bir tablo olsun,

[PHP]
update kisi_tablo set takip_edilen_epostasi='$eposta' where id='$kisi_id';
gibi bir komut kullanarak takip edilenler listesine alabilirsin, sonra yazılarını almak için yazilar adında bir tablomuz, tablonun içinde yazi_sahibi ve yazi alanı olsun:
[PHP]
$sahip_eposta_sorgu = mysql_query("select sahip_eposta from kisiler where id='$id'");
if(mysql_num_rows($takip)>0)
{
    while($satir = mysql_fecth_array($sahip_eposta_sorgu))
    {
        $sahip_eposta = $satir['sahip_eposta];
        $yazi_sorgu = myql_query("select yazi from yazilar where yazi_sahibi='$sahip_eposta'");
        if(mysql_num_rows($yazi_sorgu)>0)
        {
            while($yazi_satir=mysql_fetch_array($yazi_sorgu))
            {
                $yazi = $yazi_satir['yazi'];
                echo "$yazi";
            }
        }
    }
}

Tabi bunun daha kısa yolu yazılabilir mi diye düşünüyorum fakat yine de işimi halletmişti. Bir de şu var, böyle yaptığınızda bir kişinin tüm yazılarını alıp, sonra diğer takip ettiğiniz kişiye geçecektir. Bunu da biraz düşünerek devamını siz getirebilirsiniz. Kolay gelsin.

(17 Oca '13, 07:35) orhangazi orhangazi's gravatar image

Yanlış anlamadıysam; ayrı ayrı takip ettirme kaydı yaparsanız olur gibi geldi bana. Yani where ile aratacağınız alanın içinde bir sürü kayıt olmasındansa tek tek kaydettirin daha kolay olur.
Zannedersem 1000 varvasyon derken örneğin takipci_e_posta alanı içerisinde takipçiler olarak 1000 tane birbirinden boşlukla ya da virgülle ayırmayı, sonra da bunu çekip dizi olarak işlemeyi düşündünüz. Ya da ben sizi yanlış anladım.

permanent link

cevaplandı: 16 Oca '13, 04:21

orhangazi's gravatar image

orhangazi
132172126
cevap kabul oranı: 0%

Kullanıcıların mesajlarının bulunduğu tabloya son_mesaj_tarihi gibi bir alan koyarsiniz. Kişi mesaj yayınladıkça bu alanı update edersiniz.

Belli sürelerle -mesela 3 saniyede veya 20 saniyede bir- güncellemeleri konrol edip(sistem tarihi 20:16:40 ise select sorgusunda,where koşulu ile son_mesaj_tarihi 20:16:20'den sonra olanları), yeni mesaj yayınlayanları çekersiniz. Count ile saydırıp 1'den fazlaysa(yani güncelleme varsa), sayfayı render edersiniz.

permanent link

cevaplandı: 17 Oca '13, 09:09

mhkoca60's gravatar image

mhkoca60
1.8k264554
cevap kabul oranı: 15%

1

Ama böyle bir şey sunucuyu çok yorar bence. Böyle şeyler için comet tekniği kullanılıyor. Facebook da bu teknolojiyi kullanıyor, google da. Facebookta mesajın gelmesi her zaman kontrol edilmiyor da, mesaj geldiğinde gösterme kodları çalışıyor. Gmailde de böyle. Büyük şirketlerin kullanması bu teknolojiyi gizemli ve zor göstermesin çok kolay bir kullanımı var. http://www.cangelis.com/php-jquery-ile-comet-programlama/

(17 Oca '13, 09:35) orhangazi orhangazi's gravatar image

Güzelmiş. Bu konu hakkında bilgim yoktu o yüzden sadece veri tabanı eksenli düşündüm.

(17 Oca '13, 10:23) mhkoca60 mhkoca60's gravatar image
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

Soruldu: 16 Oca '13, 03:03

Görüntüleme: 846 kez

Son güncelleme: 17 Oca '13, 10:23

powered by BitNami OSQA