我已经在网上开了衣服店,我可能需要制作一些标签系统。
整个应用程序都是基于CakePHP构建的,我需要一个管理所有产品的想法,类似于ebay。
例如,使用price
,type
,producer
,size
,status
例如,其中一些应该是多搜索的,以便能够搜索价格在10美元到20美元之间的商品,尺寸为S或M
答案 0 :(得分:0)
拥有一个基本上充当键/值存储的属性表,并将这些属性分配给每个产品。
属性本身可以有一个attribute_options表,您可以从中读取属性的不同可用大小。
然后您只需要搜索属性表和产品表。
答案 1 :(得分:0)
根据您的描述,您不需要任何其他表格。只需将它们添加为产品表中的字段,然后根据该字段进行查询。它会更快,更逻辑地布置......等等。
您的示例可以像下面一样搜索。 (这似乎有点矫枉过正,但是会让任何未来的发现变得非常简单,并且遵循胖控制器,瘦小的模特口头禅:
//ProductsController
public function whatever() {
$opts = array(
'price_high' => 10,
'price_low' => 20,
'sizes' => array('S', 'M')
);
$this->Product->getProducts($opts);
}
//Product Model
public function getProduts($opts = null) {
//initialize variables
$params = array('conditions'=>array());
//size(s)
if(!empty($opts['sizes']) {
array_push($params['conditions'], array('Product.size'=>$opts['sizes']));
}
//price(s)
if(!empty($opts['price_high']) {
array_push($params['conditions'], array('Product.price <='=>$opts['price_high']));
}
if(!empty($opts['price_low']) {
array_push($params['conditions'], array('Product.price >='=>$opts['price_low']));
}
return $this->find('all', $params);
}