定义用户信息和用户包裹

下表展示了游戏中用于表示用户信息和用户包裹的结构:用户信息存储在一个散列里面,散列的各个键值对分别记录了用户的姓名、用户拥有的钱数等属性。用户包裹使用一个集合来表示,它记录了包裹里面每件商品的唯一编号。

键名:user:17 存储类型:hash
name Frank
funds 43
键名:inventory:17 存储类型:set
ItemL
ItemM
ItemN
键名:user:27 存储类型:hash
name Bill
funds 125
键名:inventory:27 存储类型:set
ItemO
ItemP
ItemQ

商品买卖市场的需求非常简单:一个用户(卖家)可以将自己的商品按照给定的价格放到市场上进行销售,当另一个用户(买家)购买这个商品时,卖家就会收到钱。另外,本节实现的市场只根据商品的价格来进行排序,稍后章节将介绍如何在市场里面实现其他排序。

为了将被销售商品的全部信息都存储到市场里面,我们会将商品的ID和卖家的ID拼接起来,并将拼接的结果用作成员存储到市场有序集合里面,而商品的售价则用作成员的分值。通过将所有数据都包含在一起,我们极大简化了实现商品买卖市场所需的数据结构,并且,因为市场里面的所有商品都按照价格排序,所以针对商品的分页功能和查找功能都可以很容易地实现。

下表展示了一个只包含数个商品的市场例子:

键名:market 存储类型:zset
正在销售的商品.物品的拥有者 物品的价格
ItemA.4 35
ItemC.7 48
ItemE.2 60
ItemG.3 73

上表表示的商品买卖市场,第一行数据表示:用户4正在销售商品Item,售价为35块钱

既然我们已经知道了实现商品买卖市场所需的数据结构,那么接下来该考虑如何实现市场的商品上架功能了。

results matching ""

    No results matching ""