【发布时间】:2014-05-09 15:20:54
【问题描述】:
为了帮助大家理解我的要求,我提出了一个场景:
我的网络应用中有用户 A。
有一个特定页面有一个表格,其中包含该用户独有的信息。假设这是一个仅针对用户 A 显示的客户列表,因为用户 A 和这些客户位于区域 5。
其他用户被分配到不同的区域并查看不同的客户列表。
我想做的是缓存每个用户列表的所有结果。这不是问题,因为我可以使用:
$MC = new Memcache;
$MC->addserver('localhost');
$data = $MC->get('customers');
if($data)
{
} else {
$data = $this->model->customersGrid($take, $skip, $page, $pageSize, $sortColumn, $sortDirection, $filterSQL, $PDOFilterParams);
$MC->set('customers', $data);
}
header('Content-Type: application/json');
return $data;
现在的挑战是以某种方式将来自我的 users 表的 SQL 过滤器语法转换为一个可以过滤和排序数组的函数($data 是一个 JSON 字符串,如果这是正确的方法,我会变成一个数组走)。
仅供参考,这是我在语句中用于构建 WHERE 子句的别名数组:
$KF = new KendoFilter;
$KF->columnAliases = array(
'theName' => 'name',
'dimensions' => 'COALESCE((SELECT CONCAT_WS(" x ", height, width, CONCAT(length, unit)) FROM products_dimensions,
system_prefs, units_measurement
WHERE products_dimensions.productId = product.id
AND units_measurement.id = system_prefs.defaultMeasurementId), "-")',
'gridSearch' => array('theName', 'basePrice')
);
$filterSQL = $KF->buildFilter();
我的问题是什么是过滤和排序 memcache 数据的好方法,就好像它是一个 SQL 查询一样?还是 memcache 已经内置了一些东西?
【问题讨论】:
标签: php mysql kendo-ui memcached kendo-grid