Zopik Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 Nedir bu key'ler. Bir tabloda neden key belirlemek zorundayım ? Primary Index ya da Unique olunca ne oluyor olmayında ne oluyor ? Neden auto increment dediğimde mutlaka bir primary key yaratmak zorunda kalıyorum. elimde bir kaç farklı Php & MySql şeklinde kitap var fakat bu çok süper müper eserler hiç bir şeyin mantığını anlatmamış. Uzmanlar için yazanı bile :p Birileri bana anlatsın lütfen ... Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Volfied Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 key denen şey o table da her row a mahsus olan unique şeydir öğrenci listesi yapıcan diyelim öğrenc i numarasını key tutarsın? nyie çünkü aynı iki öğrenci aynı numaraya sahip olamaz ama aynı isimli, aynı soyadlı aynı sınıfta olan öğrenciler her zaman olabilir, bu yüzden unique bi id atamak zorundasın herşeye (en azından access de falan yaratıyosan, ben çok güzel key kullanmadan SQLQuery ile yaratabiliyorum table) özel mesajına bak, msn imi vericem ordan konuşuruz[signature][hline]I repeat myself when under stress I repeat myself when under stress I repeat myself when under stress I repeat. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
adonis Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 unique güzel açıklanmış Primary key ise ilişkisel veri tabanında 2 databasi çakıştırmak için kullanılıyor bildiğim kadarıyla. mesela bi tablo auto_inc te öğrenci adlaerını tutarken diğer tablo ise öğrenci notlarını tutuyor bunları çakıştırıp ahmet hangi notu almış görebilirsin.[signature][hline]There's someone who needs you. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 Hatta bunu şu şekile yaparsınız. Tablo ogrenciler id - name 1 - Ahmet Koca 2 - Mehmet Akif 3 - Hikmet Toparlak Tablo notlar id - ogrenciID - notlar 1 - 1 - 25 2 - 1 - 100 3 - 3 - 59 4 - 2 - 15 SQL Query ( Mysql de ) ; SELECT ogrenciler.* FROM ogrenciler LEFT JOIN notlar ON ogrenciler.id = notlar.ogrenciID ( hatta bundan sonra WHERE ogrenciler. name = 'Mehmet Akif' şeklinde devam edilerek öğrenci adına göre filtrelenmiş bir query de yazılabilir ) Mssql de sub-select falan var bunun yerine, o daha kolay. Gerçi bir sürü şey var.[signature][hline]Q: How many IBM cpu's does it take to do a logical right shift? A: 33. 1 to hold the bits and 32 to push the register. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
adonis Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 buda güzel forumlarda yapılan olay gibi. Mesela Pm tablosu vardır bu pm içerisinde kimden kime kısmı id lerden oluşur ve bunları ana user datası ile join ettiğinde ahmetten mehmete mesaj gitmiş olduğunu görebilirsin. [Bu mesaj adonis tarafından 29 Kasım 2004 14:12 tarihinde değiştirilmiştir] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 sharky bu arada paticik ne kullanıyor? mysql, postgre? mesela su isimlerin yanında yazan "?" daki işlemleri kolaylastırmak icin view falan kullanılabilir. muazzam hızlanma görülebilir hatta.. yalnız sanırım suan mysql view falan desteklemio.. bence mysql kullanıosanız db yi degistirin dicem :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Zopik Mesaj tarihi: Kasım 29, 2004 Konuyu açan Paylaş Mesaj tarihi: Kasım 29, 2004 tamam id ya da herhangi eşsiz bir değeri tablolarıma ekliyorum. ilişkili her tabloda aynı kişiye ya da aynı hedeye ait kayıtlarında id leri ya da verilen eşsiz değer de aynı oluyor. bu sayede aynı kaydın farklı tablolara bölünmüş bilgilerini toplarlayabiliyorum. buraya kadar bir sorun yok. aslında bir sorun zaten yok öğrenmek için soruyorum : ) phpmyadmin ile tablo yaratırken benden illaki alanlardan biri için key belirlememi istiyor. şimdi bu bahsettiğiniz gibi id içeren ve auto_increment özelliği atanmış bir alan. ben bu alana primary keyini atayabiliyorum. sorun çözülüyor ve bu sefer ben bu tabloyu oluşturabiliyorum. şimdi. mademki bu unique bir alan neden ben primary şeklinde bir key atayabiliyorum ? ya da bu eşleştirmeleri primary ya da unique alan belirlemeden de yapabildiğimi varsayarsaka böyle bir olaya ne gerek var. unique dediğim benzersiz verileri saklayacak peki o zaman id için neden primary kullanayım? tablolar arası ilişkiler zaten sağlanıyor. hani kullanırsın çünkü şu işe yarar + sı şudur gibi cevaplar olur ya. ben onlardan istiyorum size zahmet :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 said: CEDAY, 29 Kasım 2004 15:13 tarihinde demiş ki: sharky bu arada paticik ne kullanıyor? mysql, postgre? mesela su isimlerin yanında yazan "?" daki işlemleri kolaylastırmak icin view falan kullanılabilir. muazzam hızlanma görülebilir hatta.. yalnız sanırım suan mysql view falan desteklemio.. bence mysql kullanıosanız db yi degistirin dicem :) Ne yazık ki mysql kullanıor :) Kediyi vakti zamanında pati aylar önce çöktüğünde ikna edemedim psql e geçmeye.. :([signature][hline]Q: How many IBM cpu's does it take to do a logical right shift? A: 33. 1 to hold the bits and 32 to push the register. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 mesajları üstünkörü okudum, biraz detaylı açıklayayım sql (structured query language) dediğimiz sorgulama dilini kullanan veritabanları arasında en bilgili olduğum MsSql, onun üzerinden anlatayım. sqlde (sql diye bahsettiğim mssql olacak bundan sonra) veriler page yapısı denen şekillerde tutulurlar. yani belirli büyüklüklerde gruplanmış halde sabit diskin belirli noktalarına atılırlar. bu şekilde veriyi tutmak ilk bakışta çok anlamsızdır çünkü bir özelliğe göre arama yapıldığı zaman farklı pagelerdeki satırlar ayrı ayrı çekilirler ve özellikle de where bilmemne = hasan şeklindeki sorgularda teker teker kontrol çok zorlaşır fakat primary key kullanırsanız başka bir sanal tablo da hangi pagein hangi satırında tablonun hangi satırının tutulduğunu saklar. eğer clustered index ise diğer pageler buna göre düzenlenir ve sorgularınız hatırladığım kadarıyla %72 oranında hızlanır. unique key ise bir veriyi tekrarlamanızı engeller. mssql karşılığı non-clustered indextir. Not: mssql kullanmayalı 2 seneye yakın zaman oldu. kavram kargaşası yaşamış olabilirim[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 bu arada hemen görmüşken söyleyeyim left join, inner join, right join ve outterjoin birbirinden farklı join çeşitleridir. inner join benzer keyli tablolar için kullanılır. bu yüzden her tabloda tekrarlanmayan idler tutulur misal select tbl_users.name, tbl_users.surname tbl_books.hasan from tbl_users inner join tbl_books on tbl_users.id = tbl_books.studentid bu tabloda aynı id'li öğrenciler aynı satırda çıkacaktır. yani tabloları birbirine uygun şekilde "merge" edecektir. fakat left join derseniz ikinci tabloyu birincinin soluna, right joinde sağına ekleyecektir. fakat microsoft inner joinlerin çok daha hızlı çalıştığını iddia etmektedir. outter join ise tabloları ilişkisiz bir biçimde çekecek ve yanyana ekleyecektir. yani bir satır, ilk tablodan birinci öğrencinin, ikinci tablodan 16. öğrenciye ait kitabın bilgileri alınarak oluşabilir.[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 said: CEDAY, 29 Kasım 2004 15:13 tarihinde demiş ki: mesela su isimlerin yanında yazan "?" daki işlemleri kolaylastırmak icin view falan kullanılabilir. muazzam hızlanma görülebilir hatta.. count(userid)'nin de bayağı hızlandırması lazım? (count mu kullanılıyor diye merak edesim geldi)[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 count mu ? onun ne alakası var ki ? O query deki sayıyı söylüyor ?[signature][hline]Q: How many IBM cpu's does it take to do a logical right shift? A: 33. 1 to hold the bits and 32 to push the register. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 o soru işareti de zaten userposts.php'ye gitmiyor mu? o sayfayı limit 0,30 yavaşlatmaz zaten.. select userid from users where username = mum_chamber burdan userid'yi alırsın. select * from userposts where userid = userid order by date limit 0,30 dersin de. bu query bu kadar yavaşlama yapmaz, primary keyde aramalar çok hızlı olur.. yapsa yapsa sağ üstteki postcount sorun yapar.[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 peki ya, postcount ayrı bir tabloda tutuluyorsa ?[signature][hline]Q: How many IBM cpu's does it take to do a logical right shift? A: 33. 1 to hold the bits and 32 to push the register. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 ne gerek var diyesim gelir sonra da "sanane" şeklinde bir cevap alasım gelir. :D[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 1-2 GB veritabanın olunca, insanlar sadece "ne gerek var dediğinde", suratına enteresan enteresan bakalar :)[signature][hline]Q: How many IBM cpu's does it take to do a logical right shift? A: 33. 1 to hold the bits and 32 to push the register. [Bu mesaj sharky tarafından 29 Kasım 2004 23:11 tarihinde değiştirilmiştir] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 benim hiç veritabanım olmadı şarki benim hiç kedim olmadı şarki[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 postcount ayrı bi tabloda tutuluyosa şöle yapılcak select userposts.entry, userposts.userid,users.userid,users.name,counttable.userid,counttable.UC from userposts, users, counttable where users.userid=userposts.userid and users.userid=counttable.iserid and users.name='Ceday' gibi mesela.. post sayısı tutulmuosa performans icin ya view kullanmak gerekir ya da db ye eklemek.. [Bu mesaj CEDAY tarafından 30 Kasım 2004 00:03 tarihinde değiştirilmiştir] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
adonis Mesaj tarihi: Kasım 29, 2004 Paylaş Mesaj tarihi: Kasım 29, 2004 mumunda dediği gibi ve en basit anlatımıyla primary key olarak atadığın zaman databasede indexleme yapmış oluyorsun böylece de yine mumunda dediği gibi hızlı bir sorgulama yapmış oluyorsun. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar