我正在开发iOS购物应用程序。我使用python来编写我的后端。
至于购物车部分,我想在list
对象中存储一堆产品ID。
顺便说一下,我使用SQLAlchemy
来处理sql查询。
由于我在数据库设计方面没有太多经验,我想知道将list
对象存储到mysql中的最佳方法是什么。
我认为这是一个多关系问题,我想知道我是否需要第三个表,除了CartItem
表存储产品' ids和Product
表来存储产品的ID?
有人说serialization
是一种选择。什么是serialization
?
或者我可以用逗号分割列表元素并存储为string
吗?
我已经提到了一些问题答案,比如
答案 0 :(得分:0)
我最近使用python / sql炼金术为某人从网站下订单做了一个应用程序。我做的是,创建2个表。一个存储用户订购/订购的商品,另一个包含订单信息,如订购日期,地址,特殊说明,订单号。这是一对多关系。当用户添加他们被置于“进行中”状态的项目时,当他付费时,他们被置于“已完成”状态。这样我就知道他的购物车里面到底是什么,以及已经订购了什么物品。我使用另一张表跟踪所有货件/订单。
webapp已启动并运行here,您必须登录才能测试订购功能。
答案 1 :(得分:0)
保存带逗号分隔ID的单个字符串是可能的,但我认为它不是一个干净的解决方案。它实际上是序列化的一个例子=将对象转换为可以在以后存储和重建的格式(wikipedia)。特别是在这样的简单示例中,我建议使用第三个表格:
我不明白您在表CartItem
中存储的内容,但我使用的是与此类似的架构:
TABLE product
-------------
id | price | name | ...
1 | 10 | socks | ...
2 | 34 | shirt | ...
TABLE user
-------------
id | name | ...
1 | John | ...
TABLE user_cart
-------------
user_id | product_id | count | ...
1 | 1 | 5 | ...
1 | 2 | 1 | ...
表user_cart
中的单行用于存储一个产品/用户关系。
使用SQLAlchemy
,您只需拨打电话,即可获得用户的购物车经过一些配置后User.cart_items
。检查backref。