none
SQL Server Yardımı İle Veri Kopyalama, Eşleştirme Sistemi RRS feed

  • Soru

  • Sitemde eşleştirme sistemi yapmak istiyorum ve şuan SQL Server hakkında bilgim çok az.

    Eşleştir butonuna basıldığında giriş yapan kullanıcıları başka bir veritabanına atılmasını istiyorum, bu veritabanında üyeler birbiri ile rastgele eşleşecekler sonuçlar veritabanına yazılacak, ve sonuçlar site de kullanıcıların karşısına sunulacak (hangi üye ile eşleştiği kullanıcıya gösterilecek)

    Acaba sırası ile bana yardımcı ollabilcek var mı? 

    21 Mart 2019 Perşembe 01:44

Tüm Yanıtlar

  • Bu haliyle bu soruya kimse net cevap veremez. Soruyu okuyunca acaba terminoloji hatası mı var diye geçirdim aklımdan. Bir de tam olarak yapmak istenen anlaşılmıyor.

    'Başka bir veritabanına' derken gerçekten başka bir veritabanını mı kastettiniz, yoksa başka bir tablo mu demek istediniz? İkisi arasında fark var (yokmuş gibi gelebilir ama genelde veritabanları arasındaki izinler daha farklıdır).

    Bir başka tabloya aktarım için gerekli kod kaba olarak (veritabanı ise de hemen hemen aynı, izin problemi yoksa tablo adının başına veritabanı adını da eklemeniz lazım - veritabani..tabloAd gibi):

    insert into baskaTablo (kullaniciID, ad, soyad)
    select kullaniciID, ad, soyad
    from girisler
    where girisYapti = 1;
    

    Tablo yapilariniz olmadigindan, kendimce uydurduğum tablo ve kolon adlarıyla kabaca boyle.

    Rastgele eşleştirme icin de şöyle bir şey yazabilirsiniz:

    WITH rastgele (id, kullaniciId)
    AS (SELECT ROW_NUMBER() OVER (ORDER BY NEWID()),
               kullaniciId
        FROM baskatablo)
    SELECT 
           t1.kullaniciId,
           t2.kullaniciId
    FROM rastgele t1
        LEFT JOIN rastgele t2
            ON t2.id = t1.id + 1
    WHERE t1.id % 2 = 1;

    Not: Sorularinizi ne kadar acikalyici ve ornek veriyle birlikte sorarsanız o kadar net cevap alma sansiniz olur.

      
    21 Mart 2019 Perşembe 13:20

  • Acaba sırası ile bana yardımcı ollabilcek var mı? 

    Derken neyi kastettiğinizi merak ettim bende.

    Mesela Çetin bey ilk sırayı almış. Şimdi sıra kimde?

    Ayrıca Buton, site demişsiniz. Yani bu bir site sanırım. Peki hangi dil için soruyorsunuz bunu? Yoksa dil önemli değil SQL Serverda Procedurle mi halledilsin diyorsunuz? Bunu yazılım tarafında 0 ile tablodaki kullanıcı sayısı-1 aralığında iki tane eşit olmayan random sayı üretip, bu iki sayıyı eşleşmeler tanımlı bir tabloya kaydedip istediğiniz zaman bu tablodaki değerleri  kullanıcı tablosundan kişi isimlerini çekip göstermek için de kullanabilirsiniz.

    pgnchess.com

    dergikapaklari.com

    25 Mart 2019 Pazartesi 22:38