V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aoscici2000
V2EX  ›  Java

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

  •  
  •   aoscici2000 · 2019-06-19 14:35:48 +08:00 · 2818 次点击
    这是一个创建于 1986 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    // 商品
    {
        "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;
    }
    
    
    6 条回复    2019-06-24 11:56:57 +08:00
    encro
        1
    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
        2
    PerpetualHeng  
       2019-06-19 19:45:42 +08:00
    GoLand
        3
    GoLand  
       2019-06-19 20:06:19 +08:00
    同一个商品不同规格属两个 sku,你基本概念都没弄清楚。
    aoscici2000
        4
    aoscici2000  
    OP
       2019-06-19 21:17:18 +08:00
    @GoLand 不同规格不同 sku 这个倒是知道的, 其实我最想知道的是假如像例子中的这种有 store 这个两边通用的结构的时候, 是各自写在各自内部, 还是独立出来?
    MotherShip
        5
    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
        6
    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 里添加商品名字等
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1080 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:44 · PVG 06:44 · LAX 14:44 · JFK 17:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.