Yorumları: 149
Konuları: 48
Kayıt Tarihi: 24-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 85
Başlangıç
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.
Yorumları: 2.017
Konuları: 246
Kayıt Tarihi: 09-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 4.370
Uzman
Taboda kaç field var , cihazlar isim isim mi tutuluyor belirli bir kodları mı var ?
Yorumları: 231
Konuları: 12
Kayıt Tarihi: 06-07-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.178
Programcı
"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.
Yorumları: 953
Konuları: 124
Kayıt Tarihi: 06-07-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 6.375
Üstad
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.
Yorumları: 453
Konuları: 14
Kayıt Tarihi: 07-09-2016
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.1
- Delphi XE7
- Delphi XE2
- Delphi 7
Rep Puanı: 1.833
Programcı
Ö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.
Yorumları: 231
Konuları: 12
Kayıt Tarihi: 06-07-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.178
Programcı
20-07-2018, Saat: 09:46
(Son Düzenleme: 20-07-2018, Saat: 09:48, Düzenleyen: ssahinoglu.)
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.