💻
Orta
E-Ticaret İlişkisel Veri Modeli
100 puan
·
Java
Product, Category ve Tag sınıfları arasındaki ilişkileri HashMap ile simüle ederek, ilişkisel veri modelinin temellerini pratik edin.
📋 Talimatlar
E-ticaret sistemi için aşağıdaki ilişkisel yapıyı HashMap kullanarak simüle edin:
- Category ↔ Product: One-to-Many (bir kategoride birden fazla ürün)
- Product ↔ Tag: Many-to-Many (bir ürünün birden fazla etiketi, bir etiketin birden fazla ürünü)
Implement edilecek metodlar:
- addCategory(String categoryName) — Yeni kategori ekler
- addProduct(String productName, String categoryName) — Kategoriye ürün ekler
- addTagToProduct(String productName, String tagName) — Ürüne etiket ekler
- getProductsByCategory(String categoryName) — Kategorideki ürünleri sıralı döner (virgülle ayrılmış)
- getProductsByTag(String tagName) — Etikete sahip ürünleri sıralı döner (virgülle ayrılmış)
- getProductWithDetails(String productName) — "Product[name=X, category=Y, tags=[A, B]]" formatında döner
Giriş formatı:
- Her satır bir komut: ADD_CATEGORY, ADD_PRODUCT, ADD_TAG, GET_BY_CATEGORY, GET_BY_TAG, GET_DETAILS
- Komutlar boşlukla ayrılmış: KOMUT arg1 arg2
Çıkış formatı:
- GET_BY_CATEGORY Elektronik → "Laptop, Telefon" (sıralı, virgülle ayrılmış)
- GET_BY_TAG indirimli → "Laptop, Tablet" (sıralı)
- GET_DETAILS Laptop → "Product[name=Laptop, category=Elektronik, tags=[indirimli, yeni]]"
- Bulunamazsa → "NOT_FOUND"
🧪 Örnek Test Senaryoları
Kategoriye ürün ekleme ve listeleme
Girdi
ADD_CATEGORY Elektronik ADD_PRODUCT Laptop Elektronik ADD_PRODUCT Telefon Elektronik GET_BY_CATEGORY Elektronik
Beklenen Çıktı
Laptop, Telefon
Etikete göre ürün listeleme
Girdi
ADD_CATEGORY Elektronik ADD_PRODUCT Laptop Elektronik ADD_PRODUCT Tablet Elektronik ADD_TAG Laptop indirimli ADD_TAG Tablet indirimli GET_BY_TAG indirimli
Beklenen Çıktı
Laptop, Tablet
Ürün detay formatı
Girdi
ADD_CATEGORY Elektronik ADD_PRODUCT Laptop Elektronik ADD_TAG Laptop indirimli ADD_TAG Laptop yeni GET_DETAILS Laptop
Beklenen Çıktı
Product[name=Laptop, category=Elektronik, tags=[indirimli, yeni]]
Olmayan kategori
Girdi
GET_BY_CATEGORY Giyim
Beklenen Çıktı
NOT_FOUND
Olmayan ürün detayı
Girdi
GET_DETAILS Monitor
Beklenen Çıktı
NOT_FOUND
Farklı kategorilerden aynı etiket
Girdi
ADD_CATEGORY Elektronik ADD_CATEGORY Giyim ADD_PRODUCT Laptop Elektronik ADD_PRODUCT Tisort Giyim ADD_TAG Laptop kampanya ADD_TAG Tisort kampanya GET_BY_TAG kampanya
Beklenen Çıktı
Laptop, Tisort
☕
Main.java
✓ Çözüm yüklendi
puan
Testleri çalıştırmak için kodunuzu gönderin
✅ Tüm testler geçti! Tebrikler!
Beklenen:
Sonuç:
Ln 1, Col 1
·
JAVA
·
UTF-8
Wandbox