您好我刚刚开始使用Aerospike所以我需要一些细节,这将是我的电子商务平台的良好数据模型,我无法在Aerospike中设计一个可以完美运行的数据模型。
以下是我的电子商务平台的一些基本要求:
1.>用户设置(用于登录和注册用户的基本信息)
2.>产品组(用于存储产品信息,如名称和图像以及选项和颜色选项等)
3.>订单设置(跟踪用户订单记录)
数据库所需的特殊Set的复杂要求如下:
1.对于用户将购买的每个产品,将生成一个共享代码,用户可以与他/她的朋友和家人分享以获得未来的利益。
2.使用某人的共享代码购买产品的用户,然后必须将该用户购买“xyz”产品的详细信息转移给共享代码的所有者,并且还将生成该用户的共享代码。他/她可以与他/她的朋友分享。
3.此外,用户必须能够知道有多少人共享他/她的代码,以及从第一级用户的共享代码的共享代码中购买产品的用户。
答案 0 :(得分:1)
看起来您正在尝试为多层次营销订单管理系统建模。
用户和产品都是直截了当的。记录TTL =永远存在,永远不会删除所有集。 user_info,product_info可能会更新。
为简单起见,每个产品购买只是一个product_id。 通过PK我的意思是记录的主键。
User Set: {PK:user_id, user_info:{.....}}
Product Set: {PK:product_id, product_info:{.....}}
Order Set: {
PK: order_id,
order_details:{buyer:user_id,
item:product_id, qty:...,
share_code: "order_id:xyz",
parent_code:"parent_order_id:abc" },
level1_orders:[List of order_ids],
level2_orders:[List of order_ids]
}
share_code是包含order_id:some_code的复合字符串。 对于第一组订单(0级订单),parent_code可能为零。
考虑order_id = 213,分享代码:“213:abc”,parent_code:“112:pqr”
如果任何用户使用共享代码“213:abc”进行购买,并且此级别1购买order_id为310,请在{PK:310,... share_code:“310:cde”,parent_code:“的订单集中输入213:abc“,....}然后更新order_id = 213 - 到其level1_orders列表,追加310 order_id。如果订单213有parent_code,在这种情况下它是”112:pqr“也在它的Level2命令中更新order_id 112通过将此order_id,310附加到其中来列出。
现在您拥有模型所需的所有信息。
注意:这是一个多记录更新模型。如果客户中途失败或发生其他不良事件,请注意潜在的不一致。有一些先进的技术可以解决这种情况。
然而,这可能是一个很好的起点。如果这有用,请告诉我。如果它与您想要的不同(您的第3部分对我来说不是很清楚),您可能需要修改模型,但突出显示的技术可能会有所帮助。