Kod
product (przechowuje główne cechy produktu - np. nazwę):
- id
- label
- id
- label
Kod
item (przechowuje cechy konkretnego egzemplarza, który może się różnić rozmiarem, kolorem, itd. - mają różne ceny):
- id
- product (klucz product.id)
- price
- id
- product (klucz product.id)
- price
Kod
category:
- id
- parent
- label
- id
- parent
- label
Kod
product2category:
- product (klucz product.id)
- category (klucz category.id)
- product (klucz product.id)
- category (klucz category.id)
Korzystam z nich za pomocą Zend_Db_Table - np.:
<?php class Model_DbTable_Category extends Zend_Db_Table_Abstract { protected $_name = 'category'; } ?>
Kategorie mają konstrukcję rekurencyjną tj.:
Kod
|--+ Buty
|--- Adidas
|--- Nike
|--+ Puma
|--- X
|--- Y
|--- Pozostałe
|--- Adidas
|--- Nike
|--+ Puma
|--- X
|--- Y
|--- Pozostałe
Dla danej kategorii - np. "Buty" - chciałbym otrzymać wszystkie produkty (product.id, product.label) wraz z najniższą ceną (MIN(item.price)) dla tej kategorii i wszystkich podkategorii. Jak coś takiego skonstruować w ZF, aby nadawało się do paginacji?