商品, 购物车 设计思路问题

2019-06-19 14:35:48 +08:00
 aoscici2000

网上看了些案例感觉都太全了,新手表示看了反而更头晕了, 就直接厚脸皮来做做伸手党...

假如我的商品和购物车结构如下:

// 商品
{
    "id": "1111111"
    "title": "这是商品",
    "price": 100,
    "desc": "xxxxxxx",
    "store": [
    	{"babel": "S", "store": 50},
        {"babel": "M", "store": 50},
        {"babel": "L", "store": 50}
    ]
}

// 购物车
{
    "id": "userid",
    "items": [
    	{
            "title": "这是商品", 
            "store": [
    	        {"babel": "S", "store": 1},
                {"babel": "M", "store": 2}
            ],
            "total_price": 300
    ]
}

这里的商品里的每一个 store, 购物车里的 items 中的每一个 item, 甚至 item 里的每一个 store, 这些是单独写一个 clsss 还是直接写在商品和购物车类的内部? 尤其是这个 store 两边还通用的情况,,

最后问一下, 假如直接写个 Lsit<map> 会不会被骂.?</map>


public class Cart {
    private String title;
    private List<Item> items;
}

class Item {
    private String title;
    private List<Store> store;
    private int total_pric;
}

class Store {
    private String label;
    private int store;
}

2730 次点击
所在节点    Java
6 条回复
encro
2019-06-19 17:53:46 +08:00
看下数据库,数据结构的书籍吧。
Cart{id,product_id,user_id,num},Product{id,title},Order{id,price},OrderItem{id,product_id,num}
PerpetualHeng
2019-06-19 19:45:42 +08:00
GoLand
2019-06-19 20:06:19 +08:00
同一个商品不同规格属两个 sku,你基本概念都没弄清楚。
aoscici2000
2019-06-19 21:17:18 +08:00
@GoLand 不同规格不同 sku 这个倒是知道的, 其实我最想知道的是假如像例子中的这种有 store 这个两边通用的结构的时候, 是各自写在各自内部, 还是独立出来?
MotherShip
2019-06-24 11:52:54 +08:00
@aoscici2000 独立出来吧,不过我觉得这个结构有点不合理,如果是我我可能会设计成这样:
// 商品
{
"id": "1111111"
"title": "这是商品",
"price": 100,
"desc": "xxxxxxx",
}
//SKU
[
{
"productId": 1111111,
"babel": "S",
"store": 50
},
...
]


// 购物车
{
"id": "userid",
"items": [
{
"title": "这是商品",
"store": [
{"babel": "S", "store": 1},
{"babel": "M", "store": 2}
],
"total_price": 300
]
}
MotherShip
2019-06-24 11:56:57 +08:00
上面 SKU 和购物车没改完就发出去了

//SKU
[
{
"id": 123
"productId": 1111111,
"babel": "S",
"store": 50
},
...
]
// 购物车
{
"id": "userid",
"skuId": 123
}

查购物车的时候去 SKU 表关联查询 babel,然后去商品表关联查商品名字
或者可以适当冗余字段,比如在 SKU 里添加商品名字等

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/575469

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX