Forum: Ders Arası RSS
Acemi işi koşul sistemi
Sayfa:  önceki  1  2  3  4  sonraki 
Kadir Can #31
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 6919
Kullanıcı adını kıstas olarak kullanınca bence çok sorun olmayacaktır, hem kullanıcı adı hem de şifresi aynı kişilerin olması ilginç olur.
Yine de "UNIQUE" SQL belirteci gibi bir özellik eklersek aynı adlı kullanıcıların oluşturulmasını önleyebiliriz.
Avatar
huseyin #32
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Aynı adlı değil ama benim sık karşılaştığım bir sorundur bu . Şifresi aynı olan kişi sayısı bazen fazla olabilmekte 100 kişide 1 yada daha fazlasının şifresinin 123321 olduğunu düşün ?
diyelim bu bizim veritabanımız

|ad|      |sifre|    |şanslı numarası|
huseyin  123321   5
kadircan 123321   6


bana söyler misiniz burada kullanıcı adı şifreye göre şans numarasını yazdıran işlevi nasıl yazabiliriz vtD ile ?
Huseyin
acehreli (Moderatör) #33
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
huseyin325325:
kullanıcı adı şifreye göre şans numarasını yazdıran işlevi nasıl yazabiliriz vtD ile ?

Şifreyi nasıl kullanmayı düşünüyorsun? Veri tabanına bağlanıldığında kullanıcıları denetlemek için mi? Ve daha güvenli olsun diye her sorgu ile birlikte mi gönderiyorsun?

O zaman kullanıcı+şifre yalnızca sorgunun yasal olup olmadığı için kullanılır:

    if (izniVar(kullanıcı, alınanŞifre)) {
        sorguyuİşlet(sorgu);
    }

Eğer bütün kullanıcıların şanslı numaralarını görmek istiyorsak şifrenin kullanılacağını düşünmüyorum. Bütün kayıtları ilerleyip (ad, şanslıNumara) bilgisini üretiriz.

Ali
Avatar
huseyin #34
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Biliyorum anlatamıyorum yazarak anlatmam zayıftır malesef
Hocam kastettiğim o değildi bunu bir örnek olarak verdim diyelim özel bilgiler içeriyor . Yani bir siteye girdiğinizde
bilgileriniz nasıl karşınıza geliyor bende bunu nasıl yaparız diyorum yani

|ad|      |sifre|    |şanslı numarası|
huseyin  123321   5         Buradaki bir bütün yani huseyin diyince 123321 yada ne derseniz onlar birbirine bağlı
kadircan 123321   6
Ben bunu nasıl yapacağız diyorum böyle bir durumda huseyin in şans numarasının 5 olduğunu nasıl anlayacağız ?
Huseyin
acehreli (Moderatör) #35
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Son söylediğin eşleme tabloları değil mi? "huseyin" anahtarına karşılık gelen veriyi döndürmek:

    return tablo[ad];

Tablonun türü de Veri[string] olur. Şifre, şanslı numara, vs. Veri türü içinde durur.

Ali
Avatar
huseyin #36
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ama hocam bunlar anahtarlar içerisinde ayrı veriler

Yani ad ve şifre birar Subtable  verileri de Data sınıfından huseyin Data da string[] in bir elemanı  kadircan da şifreler de   başka bir Data da gene string[] in  ve şanslı numaralarda öyle ben bunu nasıl bir arada tutacağım
Huseyin
Kadir Can #37
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
foreach() ile tablolardaki anahtarları tek tek gezersek sanırım olacaktır.
Bu mesaj Kadir Can tarafından değiştirildi; zaman: 2012-07-18, 14:18.
Avatar
huseyin #38
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ben artık düşünemiyorum nasıl yapabiliriz aklım almadı doğrusu
Huseyin
acehreli (Moderatör) #39
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #36
huseyin325325:
Yani ad ve şifre birar Subtable

Eğer sonunda doğru anlıyorsam :) sanıyorum 'relational database' özelliğimizin olması gerekiyor. Yani belirli bir tablodaki veri başka tablodaki verilerle ilişkili (related). Ben veri tabanlarının nasıl gerçekleştirildiklerini de bilmiyorum. :(

Ali
Avatar
huseyin #40
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Acaba nasıl bir sistem oluyor ki aklımda birşey var ama size de çok saçma gelecek çünkü hataya açık ama ne olursa olsun belirtmek isterim

Diyelim önceki tablomuzu ele alalım bu tabloya göre her Data nın 2 elemanı vardır. Data.datas(bu bizim string[] dizimiz) ve string[0] elemanı birinde huseyin birinde 123321 birindede 5 olmak zorundadır benim sistemime göre aynı şekilde string[1] nolu elemanı kadircan ve diğer string[1] de 123321 ve de son olarak diger string[1] de 6 olmak zorundadır ama nasıl bir sistem yazmalıyım bunu gerçekten çözemedim neye göre ne yapmalıyım?
Huseyin
acehreli (Moderatör) #41
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yani her tablonun aynı sayıdaki satırı aynı kaydın parçaları oluyor. Olabilir ama kulağa riskli de geliyor: Tabloların her zaman için aynı sayıda elemandan oluştuklarını garanti altına almak gerek. Hata ile birisinde eksik bilgi kalsa bütün kayıtlar karışabilir.

Ali
Avatar
huseyin #42
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Bu konuda haklısınız ama bildiğim kadarı ile sql de zaten böyle yani her Subtable aynı satırdan oluşuyor bizde o şekle dönüştürürsek problem kalkar
Huseyin
Avatar
mert #43
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #39
acehreli on 2012-07-18, 16:20:
huseyin325325:
Yani ad ve şifre birar Subtable

Eğer sonunda doğru anlıyorsam :) sanıyorum 'relational database' özelliğimizin olması gerekiyor. Yani belirli bir tablodaki veri başka tablodaki verilerle ilişkili (related). Ben veri tabanlarının nasıl gerçekleştirildiklerini de bilmiyorum. :(

Ali
Haklısınız. Veri tabanlarında veri türleri için hazırlanan tablolarda  otomatik olarak artan bir kayıt numarası olur. Bir verinin biricik olabilmesi için aynı kayıt satırında o biricikliği sağlayan id(kimlik) ad, soyad, elektronik posta, doğum tarihi vs gibi veriler bulunabiliyor.( ki üye için bir sayaç ile her kayıtta +1 artan bir int türü düşünebilirsiniz burada) Sadece isme ve şifreye dayalı bir veri mimarisi genellikle bu tür çözümsel sıkıntılara neden olmakta. Sanırım sıkıntı da buradaki veri türünün tam işlenebilme yönteminin tasarlanamıyor oluşunda.

Hüseyin;
Üyeyi temsil eden bütün verilerin bir tabloda ve biricik verilerinin bir kayıt satırında olduğunu düşünmeye çalışmalısın.
O üyenin de ilişkili verileri yani okuduğu kitapları, kitaplar tablosunda (ki bunlarda da ısbn gibi değişmez ve biricik bir kayıt seti kimliği bulunmalıdır) toplanmalıdır. böylece  kitap isimleri ve yazarları birbirine karışabileceğinden öksüz(orphan) kayıtlar ile veri tabanımızı boşuna şişirmeyelim, gittiği filmleri de ayrı bir tabloya imdb numarası gibi yine biricik bir anahtarla kayıt satırlarına ekleriz. Burada da yürütülen mantık aynı. Düşünmemiz gereken o türden bir veriyi o türe ait her kayıt seti için  değişmez ve tek bir kimlik bilgisi ile ilgili tablosuna eklemek. Ardından o tablolarda üyemize ait değişmez olan biricik kimlik(id) bilgisini de ilgili tabloların ilgili satırlarına işlemek.

Böylece verileri çekerken de ilişkisel veri yapısı mantığından hareketle her tablonun kayıt satırlarındaki değişmez biricik numaraları eşleştirerek üyemize ait kitap veya film bilgilerine erişmek kalıyor bize.
Bu tür işlemleri sql ile basitçe Joinler(left, alias, as vs. gibi anahtar kelimeler ) kullanarak kısaltma yoluna gideriz.

Burası da tasarladığın kodlarda ilişkili olacağından senin düşünce sistemine kalıyor.

Ali hocam' da Kadir Can' da mantığını belirtmişler ben biraz daha açayım istedim.

Basit bir uyeler tablomuz olsun;
uyeNo |   adi   | soyadi
001    |Kadir   | Can
002    | Can    |Alpay
003    | Salih  | Dinçer

Veriyi girerken kullandığımız basit bir sql sorgusu:

INSERT INTO uyeler (adi, soyadi) VALUES ('Ali', 'Çehreli');

Açıklaması ; Veri tabanımda bulunan uyeler adlı tablomun adı ve soyadı sütunlarına ad değeri için Ali, soyad değeri için Çehreli verilerini ekle.

İşleyiş; Bu komut ile uyeler tablosunda uyeNo sütunu otomatik olarak artan yapısı ile  kimlik bilgisi için yeni kayıt seti açılır ve 004 olarak numaralandırılır.  004 adlı satırda adi sütununa Ali bilgisini, soyadi sütununa Çehreli bilgisini ekler.

Veriyi çekerken kullandığımız basit bir Sql sorgusu:

SELECT adi, soyadi FROM uyeler ORDER BY adi;

Açıklaması; veri tabanımdaki uyeler adlı tablomdan tüm üyeleri adı sütununu alfabetik sıralamaya sokarak ad ve soyad biçiminde listele.

İşleyişi; bu sorgu ile içeriğinde bir çok tablo bulunan veri tabanımızın uyeler adlı tablosuna erişilir. Tüm uyelerin ad ve soy ad verileri ad sütunundaki veriler alfabetik olarak küçükten büyüğe doğru sıralanır ve sıralı liste kullanıcıya verilir.

Başka bir örnek daha;

SELECT * FROM uyeler WHERE adi = 'Salih' OR soyadi='Dinçer';

Açıklaması; Uyeler tablomuzda bulunan tüm verileri al, adı Salih'e veya soyadı Dinçer'e eşit olan kayıtları listele.

İşleyişi; Bu sorgu veri tabanımızın uyeler tablosuna eriştiğinde SELECT' ten sonra koyduğumuz yıldız işaretinden ötürü tüm kayıtları bir alanda toplar, önce adi sütununda adın Salihe eşit olduğu satırları arar, bulduğunu listeler, bulunamayan kayıt varsa  soyadi sütununda Dinçer adlı kayıtların olup olmadığına bakar. Bulduğunu listeler.

İşinize yarayacağını umaraktan,

mert
mert
Bu mesaj mert tarafından değiştirildi; zaman: 2012-07-27, 05:47.
Avatar
mert #44
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Düşündüm de belki hayal etmenizi kolaylaştırmak için kitaplar adlı veri tabanı tablomuzu da basitçe örneklersem daha kolay anlaşılır sql konumuz.

okunanKitap adlı tablomuz basitçe şöyle tasarlanabilir

okunanKitaplar
ISBN              | kitapAdı               |   yazarı         | yayinEvi   | okuyanUyeNo
9753880022   | dirimin Öldürülüşü| Wilhelm reich|  Payel       | 001

Böyle bir tablo tasarladığınızda basitçe hangi üyenin hangi kitabı okuduğunu rahatlıkla ve bir karışıklık olmadan takip edebilirsiniz.
Bunun için basitçe ister önce üyeye ait numarayı elde eder o numara ile sorguya girer okunan kitap bilgilerini listeletirsiniz, isterseniz birleşik sorgu ile hem üye bilgilerini elde eder, o bilgilerden uyeNumarasını kullanarak okunan kitaba erişim sağlarsınız.  Böylece hem üye bilgilerini, hem kitap bilgilerini listeleyebilirsiniz.

Sorgularınızda sistem yükünüz ve listelenecek veri detayları gibi tercihleriniz söz konusu olduğundan ilişkisel yapının listelenme tercihleri tamamen sizin talepleriniz doğrultusunda şekillenecektir.

Not; İdeal veritabanı tasarımlarında okuyanUyeNo ile okunanKitaplar aynı kayıt setinde toplanmak yerine kitaplar adlı ayrı bir tablo, okunanKitaplar için sadece ISBN ve uyeNo 'yu tutacak ayrı bir veri tabanı tablosu oluşturulur. Örnekleme veri tabanı tasarımını daha rahat kavratabilmek için bilinçli olarak basitleştirilmiştir. Elbette bu basitlik hataya da açıktır. Dikkatinize sunarım.

Değişiklik nedeni: Not verme ihtiyacı
mert
Bu mesaj mert tarafından değiştirildi; zaman: 2012-07-27, 06:17.
Avatar
huseyin #45
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet okumaya daha yeni vaktim oldu ilgilendiğin için teşekkür ederim aslında sql den az cok anlıyorum asıl sorun olan konu benim için şu sql deki tabloların nasıl saklanmakta oldukları
benim veritabanımda şu şekilde saklanıyor
|;bizimtablomuz|;
*;ad*;
ALİ
SALİH
CAN
*;soyad*;
ÇEHRELİ
DİNÇER
ALPAY

sanırım benim yapmam gereken depolama şekilini değiştirmek olabilir
|;bizimtablomuz|;  //tablo tanımlansın
*;ad*;-*;soyad*; //anahtar tanımlansın
ALİ,ÇEHRELİ          //verilerin hepsi yan yana alınsın
SALİH,DİNÇER
CAN,ALPAY

sizce bunu okumak daha kolay olur mu ?
Huseyin
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  önceki  1  2  3  4  sonraki 
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 09:28:55 (UTC -08:00)