party_bid_core介绍:
之前的party_bid练习中,没有规定使用什么数据结构存储项目中使用的数据.新的项目party_bid_core中,要求使用三种不同的数据结构在测试案例的基础上实现party_bid的数据存储.
data_structure_1:
第一种数据结构为:
activities = [ { name: "", sign_ups: [], bids: [] },
在一个activities类中分别有name(活动名称),sign_up(活动报名信息),bids(竞价报名信息)三个属性.每一个活动的报名和竞价信息都存储在相应的类的sign_up和bids中,报名信息sign_up中又有一个类保存报名这的电话和名字,bids中则有竞价的名字name和相应的竞价报名信息bidding.这种数据的优点就是结构很清晰,易懂.缺点是嵌套太多,修改数据需要一层一层的遍历.比较麻烦.如
{ name: "first activity", sign_ups: [ { name: "仝键", phone: "13600000000" }, { name: "于硕", phone: "15600000000" } ], bids: [ { name: "竞价1", biddings: [ { name: "仝键", phone: "13600000000", price: "12" }, { name: "于硕", phone: "15600000000", price: "10" } ] }
data_structure_2:
第二种数据结构为:
activities = { "0": { name: "", sign_ups: [], bids: [], biddings: {} }
"0"代表活动的id,这种数据结构中是通过活动的id来查找的,与第一种数据结构的差别为将竞价的详细信息biddings提出来,通过bids中的键在bidding中查找.添加和读取竞价信息更加方便.如:
activities = { "0": { name: "first activity", sign_ups: [ { name: "仝键", phone: "13600000000" }, { name: "于硕", phone: "15600000000" } ], bids: ["竞价1", "竞价2"], biddings: { "竞价1": [ { phone: "13600000000", price: "12" }, { phone: "15600000000", price: "10" } ], "竞价2": [ { phone: "13600000000", price: "10" }, { phone: "15600000000", price: "12" }, ] } ;
data_structure_3:
第三中数据结构为:
activities = [ { id: "0", name: "first activity" } ]; sign_ups = [ { name: "仝键", phone: "13600000000", activity_id: "0" } ] bids = [ { name: "竞价1", activity_name: "0", biddings: [ { phone: "13600000000", price: "9" } ] } ];
这种数据结构将活动名称(activities),报名信息(sign_ups),竞价信息(bids)分开存储.虽然更利于操作,独立性比较强,但结构不是前两种数据结构那样清晰。
总结:
三种数据结构各有优缺点,可以根据需要选择合适的数据结构。这个练习中,我根据要求通过了测试,打破了以前比较单一的数据存储思维方式,特别是第三种数据结构,一种横向思维。收获不少。