Küçük arama varlıklarını modelleme

Tamamlandı

Veri modelimiz iki küçük başvuru veri varlığı ProductCategory içerir ve ProductTag. Bu varlıklar başvuru değerleri için kullanılır ve bir 1:Many relationshipolsa da diğer varlıklarla ilgilidir.

Ürün kategorisi, ürün, ürün etiketleri ve ürün etiketi tablolarının ilişkisini gösteren diyagram.

Bu ünitede, belge modelimizdeki ProductCategory ve ProductTag varlıklarını modelleyeceğiz.

Ürün kategorilerini modelleme

Öncelikle kategoriler için verileri kimlik ve ad sütunlarıyla tek özellikler olarak modelleyip adlı ProductCategoryyeni bir kapsayıcıya yerleştireceğiz.

Ardından bir bölüm anahtarı seçmemiz gerekiyor. Şimdi bu veriler üzerinde gerçekleştirmemiz gereken işlemleri inceleyelim.

Yeni bir ürün kategorisi oluşturacak, bir ürün kategorisini düzenleyeceğiz ve ardından tüm ürün kategorilerini listeleyeceğiz. Ürün kategorilerini oluşturma ve düzenleme işlemleri sık çalıştırılmaz. E-ticaret uygulamamız, müşteriler web sitesini ziyaret ettiğinde genellikle tüm ürün kategorilerini listeler. Son işlem en çok çalıştıracağımız işlem olacak.

Bu son işlemin sorgusu şöyle görünür: SELECT * FROM c. Seçilen bölüm anahtarı olarak id ile bu sorgu artık bölümler arası olacaktır, ancak bu yoğun okuma işlemlerini iyileştirmeye çalışsak bile mümkünse yalnızca tek bir bölüm kullanın. Ayrıca, ürün kategorisi verilerinin boyut olarak hiçbir zaman 20 GB'a yakın büyümeyeceğini biliyoruz. Bu bilgiler, tüm ürün kategorilerini listelediğimizde verileri tek bir bölüm sorgusuyla sonuçlanacak şekilde modellememize nasıl yardımcı olur?

Tüm ürün kategorilerini listelemek için bölümler arası sorguyu gösteren diyagram.

Bu küçük miktarda veriyi tek bir bölüme geri almak için şemamıza bir varlık ayırıcı özelliği ekleyebilir ve bunu bu kapsayıcının bölüm anahtarı olarak kullanabiliriz. Bu özelliğe kapsayıcıdaki bu türdeki tüm belgeler için sabit bir değer atayarak, artık tek bir bölüm sorgusuna sahip olduğumuzdan emin olacağız. Bu durumda özelliğini type çağıracak ve sabit değerini categoryvereceğiz. Sorgumuz şimdi şöyle görünür: SELECT * FROM c WHERE c.type = ”category”.

Bölüm anahtarı tür ve değer kategori olarak modellenmiş ürün kategorisini gösteren diyagram.

Ürün etiketlerini modelleme

Sıradaki varlıktır ProductTag . Bu varlık işlevde ProductCategory önceki bölümde ele aldığımız varlıkla neredeyse aynıdır. Burada da aynı yaklaşımı benimseyelim ve belgeyi kimlik ve ad özelliklerini içerecek şekilde modelleyelim ve adlı typebir varlık ayrıştırıcı özelliği oluşturalım. Bu örnekte sabit değeri ile tag. adlı ProductTag yeni bir kapsayıcı oluşturalım ve yeni bölüm anahtarını oluşturalım type .

Tür olarak bölüm anahtarı ve etiket olarak değeri içeren modellenmiş ürün etiketi kapsayıcısını gösteren diyagram.

Bazı kişiler küçük arama tablolarını modellemeye yönelik bu tekniği garip buluyor. Ancak verilerimizi bu şekilde modellemek, bir sonraki modülde daha fazla iyileştirme yapma fırsatı verir.