← Kursa Dön
💻

E-Ticaret İlişkisel Veri Modeli

Orta
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:

  1. addCategory(String categoryName) — Yeni kategori ekler
  2. addProduct(String productName, String categoryName) — Kategoriye ürün ekler
  3. addTagToProduct(String productName, String tagName) — Ürüne etiket ekler
  4. getProductsByCategory(String categoryName) — Kategorideki ürünleri sıralı döner (virgülle ayrılmış)
  5. getProductsByTag(String tagName) — Etikete sahip ürünleri sıralı döner (virgülle ayrılmış)
  6. 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

                    
Ln 1, Col 1 · JAVA · UTF-8
Wandbox