我有两个数据库表,1。城市,2。详细信息。 “详细信息”表将“城市”作为外键引用。现在我可以根据城市将数据存储在memcache中(一个密钥存储多个详细记录)?如果是的话,我应该如何制作我的钥匙?如果没有,使用memcache做到最好的方法是什么?
答案 0 :(得分:0)
DeNormalize - 针对来自城市表和详细信息表的city ket商店详细信息。这种非规范化很常见;虽然它带来了非规范化的相关缺点;主要是内存/空间相关。
如果没有,请引入合成密钥;使用自己的密钥维护城市表,但在城市记录中存储一个额外的密钥。将详细信息中的数据存储在另一个密钥中。这带来了相关的缺点,即必须对memcache进行两次查询。
答案 1 :(得分:0)
memcached是一个普通的键值存储,因此没有多关联性。 一种可能的解决方案是通过分隔符
按城市存储详细信息<city>=<detail1>;<detail2>;
此方法的缺点 - 无法检查<city>
密钥是否已包含服务器端的特定详细信息数据。
通常的方法是创建组合键
<city>:<detail_id>=<detail>
然而,没有办法得到这个城市的所有细节。