Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Uzun özellikli bir tablo hk.
#1
Ustalarım kolay gelsin. Programım telefon sektörü üzerine. Sıkıntım söyle. Programın her cihaz için ayrı ayrı özellikleri var (Burdaki rakam çok fazla yaklaşık 20.000 kadar). Cihazları listeleyip cihaz özelliklerine göre butonu aktif edip pasif etme özellik açıp kapama vb. işlemler yapmam lazım. Mysql olarak listelemeyi başardım sorunsuz ama biliyorumki sayı arttıkça çok çok yavaş olmaya başlayacak. Offline olarak şifreli biçimde yazıyorum ama bu seferde gene yavaş olacak diye düşünüyorum. Yapanlar mutlaka vardır kullanıcı listeleme özelliklerini çekme vb. işlemleri bu konuda hızlı sorunsuz olacak olan online yada offline bir çözüm varmıdır ? Biraz karışık olduysa kusuruma bakmayın en sade biçimi bu şekilde.
Cevapla
#2
(19-07-2018, Saat: 12:13)seci20 Adlı Kullanıcıdan Alıntı: Ustalarım kolay gelsin. Programım telefon sektörü üzerine. Sıkıntım söyle. Programın her cihaz için ayrı ayrı özellikleri var (Burdaki rakam çok fazla yaklaşık 20.000 kadar). Cihazları listeleyip cihaz özelliklerine göre butonu aktif edip pasif etme özellik açıp kapama vb. işlemler yapmam lazım. Mysql olarak listelemeyi başardım sorunsuz ama biliyorumki sayı arttıkça çok çok yavaş olmaya başlayacak. Offline olarak şifreli biçimde yazıyorum ama bu seferde gene yavaş olacak diye düşünüyorum. Yapanlar mutlaka vardır kullanıcı listeleme özelliklerini çekme vb. işlemleri bu konuda hızlı sorunsuz olacak olan online yada offline bir çözüm varmıdır ? Biraz karışık olduysa kusuruma bakmayın en sade biçimi bu şekilde.

Kusura bakmayın ama bence sorununuzu biraz daha somut hale getirirseniz, nokta atışı destek alabilirsiniz. Yaptığınız uygulama bir masaüstü uygulaması mı yoksa mobil cihaz üzerinde çalışan bir uygulama mı o bile anlaşılmıyor. Bu şekilde size yardım etmek yerine, sizi başka yanlışlara yönlendirmemiz çok muhtemel.
Cevapla
#3
Taboda kaç field var , cihazlar isim isim mi tutuluyor belirli bir kodları mı var ?
WWW
Cevapla
#4
"Cihazlar" ve "Özellikler" adlı iki farklı tablodan ve bunların çaprazlanmasıyla oluşan "Cihazlar_Özellikler" tablosundan bahsediyorsan indekslerle hızlandırırsın. Diyelim ki bir e-ticaret sitesinin 200 farklı telefon modeli için 100 farklı özellik türü listeleniyor olsa performans sorunu olmaz.
Cevapla
#5
Bire çok bir ilişki kurgulayacağınız veritabanı tablolarınızda Özellikleri ve Cihazları da bağımsız olarak tanımlayıp aralarına bir Mapping (işaretleme) tablosu oluşturarak bu sorunu ortadan kaldırabilirsiniz.

1 Id'li cihazın;
1 Id'li özelliği,
2 Id'li özelliği
ve 42 Id'li özelliği var.
Cevapla
#6
(19-07-2018, Saat: 14:01)edo Adlı Kullanıcıdan Alıntı:
(19-07-2018, Saat: 12:13)seci20 Adlı Kullanıcıdan Alıntı: Ustalarım kolay gelsin. Programım telefon sektörü üzerine. Sıkıntım söyle. Programın her cihaz için ayrı ayrı özellikleri var (Burdaki rakam çok fazla yaklaşık 20.000 kadar). Cihazları listeleyip cihaz özelliklerine göre butonu aktif edip pasif etme özellik açıp kapama vb. işlemler yapmam lazım. Mysql olarak listelemeyi başardım sorunsuz ama biliyorumki sayı arttıkça çok çok yavaş olmaya başlayacak. Offline olarak şifreli biçimde yazıyorum ama bu seferde gene yavaş olacak diye düşünüyorum. Yapanlar mutlaka vardır kullanıcı listeleme özelliklerini çekme vb. işlemleri bu konuda hızlı sorunsuz olacak olan online yada offline bir çözüm varmıdır ? Biraz karışık olduysa kusuruma bakmayın en sade biçimi bu şekilde.

Kusura bakmayın ama bence sorununuzu biraz daha somut hale getirirseniz, nokta atışı destek alabilirsiniz. Yaptığınız uygulama bir masaüstü uygulaması mı yoksa mobil cihaz üzerinde çalışan bir uygulama mı o bile anlaşılmıyor. Bu şekilde size yardım etmek yerine, sizi başka yanlışlara yönlendirmemiz çok muhtemel.

Masaüstü uygulaması hocam. Öteki yandan kısa öz söyle açıklıyayım 20.000 cihaz modeli var ve bu cihazların en az 30 tane fieldi var bunu nasıl hızlı halde listeleyip özellikleri çekebilirim.

(19-07-2018, Saat: 15:49)yhackup Adlı Kullanıcıdan Alıntı: Taboda kaç field var , cihazlar isim isim mi tutuluyor belirli bir kodları mı var ?

Hocam onu daha karar veremedim ama şuanki sistemimde 30 a yakın field var bu bazı modellerde arıyor eksılıyor tabi arttıgında tablo diğer modellerinde fieldi oluşuyor. Daha karar veremedim yani.

(19-07-2018, Saat: 16:54)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Bire çok bir ilişki kurgulayacağınız veritabanı tablolarınızda Özellikleri ve Cihazları da bağımsız olarak tanımlayıp aralarına bir Mapping (işaretleme) tablosu oluşturarak bu sorunu ortadan kaldırabilirsiniz.

1 Id'li cihazın;
1 Id'li özelliği,
2 Id'li özelliği
ve 42 Id'li özelliği var.

Bunu yapacağım hocam teşekkür ederim tavsiyeleriniz için.

(19-07-2018, Saat: 15:59)ssahinoglu Adlı Kullanıcıdan Alıntı: "Cihazlar" ve "Özellikler" adlı iki farklı tablodan ve bunların çaprazlanmasıyla oluşan "Cihazlar_Özellikler" tablosundan bahsediyorsan indekslerle hızlandırırsın. Diyelim ki bir e-ticaret sitesinin 200 farklı telefon modeli için 100 farklı özellik türü listeleniyor olsa performans sorunu olmaz.

aynı olayı @Abdullah ILGAZ hocam da bahsetmiş deneyeceğim tavsiyeleriniz için teşekkür ederim.
Cevapla
#7
Özellikleri ayrı bir tablo yapıp, tablo yapısını da yatay değil dikey oluşturursanız özellikler arttıkça tekrar tekrar tablo yapılarını değiştirmeniz gerekmez. Ayrıca sizin bu listenin tamamına değil, muhtemelen seçtiğiniz model'e ait özelliklere ihtiyacınız olacağı için de; ilk önce 20k kayıt içinden modeli bulacaksınız (umarım bir marka bilginiz/tablonuz da vardır). Daha sonra bulduğunuz modele ait 30 satırlık bilgiyi getireceksiniz. Doğru tablo ve index yapısı ile çok hızlı bir şekilde bu işlemler gerçekleşir.
Cevapla
#8
Bazen ayrı tablo da gerekmeyebilir. Mesela ana tabloya 30 kolon eklenebilir ve sözgelimi dolu olanlar listelenir.

Bir diğer yol da liste şablonları kullanmaktır. Diyelim ki 10 farklı şablon hazırlayıp her birinde hangi kolonların olduğunu alt alta listelersiniz. Tüm telefon kayıtları için de özellikleri ayrı ayrı belirtmek yerine sadece hangi şablonu kullandığını belirtirsiniz. Böylelikle değişiklik yapmak istediğinizde, 20.000 kayıt yerine sadece 10 kayıt üzerinde oynamak yeterli olur. Ayrıca özellikleri kendi istediğiniz sırada gösterebilmek gibi bir avantajı da olur.

Bir başkası ise özellikler için hiçbir standardın olmaması durumunda geçerlidir. Bunda da veriyi tek hücrede xml veya json gibi bir formatta tutarsınız. Lazım olduğunda çekip kullanırsınız.

Akıllı vt sunucuları bu tür verileri indeksleyebiliyor. Mesela PostgreSQL'de JSON/JSONB veri tipi tanımladığınızda verinin içindeki alanlara göre indeks ve arama yapabiliyorsunuz.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Bug SQL e Bağlantıda Tablo Adını bir değişkene atamak barissagir 3 404 10-02-2024, Saat: 16:11
Son Yorum: barissagir
  FastReport detail tablo gösterim sorunu Frrst 12 1.730 14-07-2023, Saat: 17:10
Son Yorum: hi_selamlar
  Tablo Dinleme barissagir 2 550 11-07-2023, Saat: 12:36
Son Yorum: delphiman
  Memo içerisinde 4 kolonlu tablo tipi string göstermek (String Format) Syntax 4 1.521 05-05-2023, Saat: 11:02
Son Yorum: Bay_Y
  Birden fazla tablo ile toplam alma sorunu cvheneburi 2 896 10-04-2022, Saat: 03:17
Son Yorum: cvheneburi



Konuyu Okuyanlar: 1 Ziyaretçi